Navigation

    • Register
    • Login
    • Search
    • OpenHardware.io
    • Categories
    • Recent
    • Tags
    • Popular
    1. Home
    2. scribere8146
    • Profile
    • Following
    • Followers
    • Topics
    • Posts
    • Best
    • Groups

    scribere8146

    @scribere8146

    1
    Reputation
    4
    Posts
    295
    Profile views
    0
    Followers
    0
    Following
    Joined Last Online

    scribere8146 Follow

    Best posts made by scribere8146

    • RE: S_INFO NODE with OLED Display - Solved -

      Hi sundberg84, using 5 Nodes was my first idea. But i want to use V_VAR1...
      But you solved me problem indirecty. I installed MYSController and...the code (updated above) is correct.
      Looks like ioBroker is my problem.

      Thanks for your help Thorsten

      posted in Development
      scribere8146
      scribere8146

    Latest posts made by scribere8146

    • Possible Bug with MySensors 2.0

      Hi,

      could it be that there is a litte bug in the mysensors adapter for iobroker?
      The MYSensors API say that V_VAR1 .. V_VAR5 is possible for "any Device".
      But I can't use them with S_INFO.
      The MYSensors Controller can Handle this.
      So i edit the getmeta.js like this
      'S_INFO': {index: 36, role: 'info', vars: ['V_TEXT', 'V_VAR1', 'V_VAR2', 'V_VAR3', 'V_VAR4', 'V_VAR5']},

      With this modification, it works...

      Regards Thorsten

      posted in IOBroker
      scribere8146
      scribere8146
    • RE: S_INFO NODE with OLED Display - Solved -

      Made small update .....X,Y Pos Fontsize...

      posted in Development
      scribere8146
      scribere8146
    • RE: S_INFO NODE with OLED Display - Solved -

      Hi sundberg84, using 5 Nodes was my first idea. But i want to use V_VAR1...
      But you solved me problem indirecty. I installed MYSController and...the code (updated above) is correct.
      Looks like ioBroker is my problem.

      Thanks for your help Thorsten

      posted in Development
      scribere8146
      scribere8146
    • S_INFO NODE with OLED Display - Solved -

      Hi, this is my code for writing Text to the oled display.
      Controller is ioBroker and so far everything is working, but... I like to place multiple lines to the display using V_VAR1 - V_VAR5. How to use them?
      And do i need a ACK Command?

      Thanks for you help, sorry this is my first "self made" node.

      /**
       * The MySensors Arduino library handles the wireless radio link and protocol
       * between your home built sensors/actuators and HA controller of choice.
       * The sensors forms a self healing radio network with optional repeaters. Each
       * repeater and gateway builds a routing tables in EEPROM which keeps track of the
       * network topology allowing messages to be routed to nodes.
       *
       * Created by Henrik Ekblad <henrik.ekblad@mysensors.org>
       * Copyright (C) 2013-2015 Sensnology AB
       * Full contributor list: https://github.com/mysensors/Arduino/graphs/contributors
       *
       * Documentation: http://www.mysensors.org
       * Support Forum: http://forum.mysensors.org
       *
       * This program is free software; you can redistribute it and/or
       * modify it under the terms of the GNU General Public License
       * version 2 as published by the Free Software Foundation.
       *
       *******************************
       *
       * REVISION HISTORY
       * Version 1.1 - Thorsten Böttcher
       * 
       * DESCRIPTION
       * Example sketch showing how to send messages to 0,96" OLED Display
       * 
       * ****************************
       * 
       *       OLED                 ARDUINO
       *  -----1234-----
       *  |            |  1 ->    3,3 V
       *  |            |  2 ->    GND
       *  |            |  3 -> A5 SCL
       *  |            |  4 -> A4 SDA
       *  --------------
       *  
       *  OLED ASCII Library from https://github.com/greiman/SSD1306Ascii
       *  
       */
       
      // Enable debug prints to serial monitor
      #define MY_DEBUG 
      
      // Enable and select radio type attached
      //#define MY_RADIO_NRF24
      #define MY_RADIO_RFM69
      
      #include <SPI.h>
      #include <MySensors.h> 
      
      #define CHILD_ID 0
      
      //oled display 
      #include "SSD1306Ascii.h"
      #include "SSD1306AsciiAvrI2c.h"
      #define I2C_ADDRESS 0x3C
      SSD1306AsciiAvrI2c oled;
      
      // SketchInfo
      static const char SketchName[]    ="Info Display";
      static const char SketchVersion[] ="1.1";
      int PosX     = 0;
      int PosY     = 0;
      int ClrScr   = 0;
      int FontSize = 1;
      
      // loop
      static const uint64_t UPDATE_INTERVAL = 60000;
      
      MyMessage msgText (CHILD_ID, V_TEXT); // Text
      MyMessage msgVar1 (CHILD_ID, V_VAR1); // Cursor PosX
      MyMessage msgVar2 (CHILD_ID, V_VAR2); // Cursor PosY
      MyMessage msgVar3 (CHILD_ID, V_VAR3); // Clear Screen
      MyMessage msgVar4 (CHILD_ID, V_VAR4); // FontSize
      MyMessage msgVar5 (CHILD_ID, V_VAR5); // Not Used
      
      void setup()  
      {  
        Serial.println("starting...");
        ShowInfo();
      }
      
      void presentation()  {
        // Send the sketch version information to the gateway and Controller
        sendSketchInfo(SketchName, SketchVersion);
        present(CHILD_ID, S_INFO);
      }
      
      void receive(const MyMessage &mymessage)
      {
       if (mymessage.type==V_TEXT) {
         DisplayMessage(mymessage.getString());
        }
       if (mymessage.type==V_VAR1) {
         PosX = atoi(mymessage.getString());
        } 
       if (mymessage.type==V_VAR2) {
          PosY = atoi(mymessage.getString());
        } 
       if (mymessage.type==V_VAR3) {
          ClrScr=atoi(mymessage.getString());
          if ( ClrScr > 0 )
            oled.clear();
        } 
       if (mymessage.type==V_VAR4) {
          oled.set1X();
          FontSize=atoi(mymessage.getString());
          if ( FontSize > 1 )
            oled.set2X();
        } 
      }
      
      void loop()     
      {     
       
        // Wait, but receive messages
        wait(UPDATE_INTERVAL); 
      }
      
      
      void ShowInfo()
      {
        oled.begin(&Adafruit128x64, I2C_ADDRESS);
        oled.setFont(Arial14);  
       
        oled.setFont(Arial14);
        oled.set1X();
        oled.setCursor(20,1);
        oled.write("* MySensors 2.0 *");
        oled.setCursor(30,3);
        oled.write(SketchName);
        oled.write(" ");
        oled.write(SketchVersion);
        oled.setCursor(30,5);
        oled.write("NodeID");
        oled.write(" ");
        oled.print(getNodeId());
        sleep(3000); 
        oled.clear();
      }
      
      void DisplayMessage(const char Message[])
      {
        oled.setCursor(PosX,PosY);
        oled.clearToEOL ();
        oled.write(Message);
      }
      
      posted in Development
      scribere8146
      scribere8146