Skip to content
  • MySensors
  • OpenHardware.io
  • Categories
  • Recent
  • Tags
  • Popular
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo
bigalB

bigal

@bigal
About
Posts
14
Topics
3
Shares
0
Groups
0
Followers
0
Following
0

Posts

Recent Best Controversial

  • Nodes with S_CUSTOM Values not appearing
    bigalB bigal

    @flopp
    Thanks for that, yes I noticed your thread somewhere and I was delighted to see gizmocuz working on your issue. Unfortunately the changes made broke my workaround hack. It just means I need to look for a more conventional solution that does not include modifying cpp files.
    What I will do is re-code my mysensor nodes to use other variables such as V_WATTS etc rather than V_VAR1, VAR2 etc.

    Domoticz

  • Nodes with S_CUSTOM Values not appearing
    bigalB bigal

    OK, yes you are right looks like S_CUSTOM values are not supported.
    So for those of you who are brave enough to make your own Custom MySensors nodes read on...

    I wish there was an easy way to add your own custom sensor, as I need to make many of them.
    pH Electrical Conductivity(EC), Tank Water Volume (Liters), UVa and UVb in mW/cm2 ioniziing radiation in uSv to name a few of my sensor devices.
    But right now I need to get my kWh import/export transmitter recognized by Domoticz.
    So I guess I will just have to find a work around as Domoticz looks quite good stacked up against other free controllers.
    Here is what I have done so far...

    I have discovered you can hack the hardware/MySensorsBase.cpp file. This is a really crude hack but I admit I am no C expert. Maybe someone can point out a better way of doing this.

    I am running Debian Lime on and Olimex A10.
    You will need the Source files, so if running on a RasberryPi you cannot use the compiled binaries, you will need to download the source code from github.
    Compile your domoticz and get it running first. If you do not want to run Domoticz as root then make sure you don't compile as root as you'll have to start all over again, downloading from github. A trap I fell into.
    Also you need to uninstall the boost libraries and get the latest one. Doing the sudo apt-get update and then sudo apt-get upgrade doesn't seem to get the correct boost libraries.
    Google how to remove current boost and how to install latest ver.

    On with the task... Here are the values I am sending in my sketch:

    imported energy (CHILD_ID_0, V_VAR1);
    real power (CHILD_ID_0, V_VAR2);
    apparent power (CHILD_ID_0, V_VAR3);
    voltage (CHILD_ID_0, V_VAR4);
    current (CHILD_ID_0, V_VAR5);

    freq (CHILD_ID_1, V_VAR1);
    peak power CHILD_ID_1, V_VAR2);
    pf (CHILD_ID_1, V_VAR3);
    exported energy (CHILD_ID_1, V_VAR4);

    By trial and error I found there are 4 places you need to edit inside MySensorsBase.cpp
    Find the line starting case S_CUSTOM:
    and modify as below

    	case S_CUSTOM:
    		vType = V_VAR5;
    		bDoAdd = true;
    		break;
    

    Find line starting : case V_CURRENT:
    Then add the V_VAR1 through V_VAR5 variables that you are using

    case V_CURRENT:
    	if (pChild->GetValue(vType, floatValue))
    		SendCurrentSensor(cNode, pChild->batValue, floatValue, 0, 0, (!pChild->childName.empty()) ? pChild->childName : "Current");
    	break;
    
    
    case V_VAR1:
    	if (pChild->GetValue(vType, floatValue))
    	{
    			if (pChild->childID == 0)
    			SendKwhMeter(pChild->nodeID, 10, pChild->batValue, 0, floatValue, (!pChild->childName.empty()) ? pChild->childName : "Imported Energy");
    
    	else
    			SendCustomSensor(11, 11, pChild->batValue, floatValue, ("Hz") ? pChild->childName : "Line Frequency", "Hz");
    
    	}
    	break;
    case V_VAR2:
    	if (pChild->GetValue(vType, floatValue))
    	{
    			if (pChild->childID == 0)
    			SendWattMeter(cNode, 20, pChild->batValue, floatValue,  (!pChild->childName.empty()) ? pChild->childName : "Real Power");
    	else
    			SendWattMeter(cNode, 21, pChild->batValue, floatValue,  (!pChild->childName.empty()) ? pChild->childName : "Peak VA");
    	}
    	break;
    case V_VAR3:
    	if (pChild->GetValue(vType, floatValue))
    	{
    			if (pChild->childID == 0)
    			SendWattMeter(cNode, 30, pChild->batValue, floatValue,  (!pChild->childName.empty()) ? pChild->childName : "Apparent Power");
    	else
    			SendCustomSensor(31, 31, pChild->batValue, floatValue, ("pf") ? pChild->childName : "Power Factor", " ");
    	}
    	break;
    case V_VAR4:
    	if (pChild->GetValue(vType, floatValue))
    	{
    			if (pChild->childID == 0)
    			SendVoltageSensor(cNode, 40, pChild->batValue, floatValue,  (!pChild->childName.empty()) ? pChild->childName : "Supply Voltage");
    	else
    			SendKwhMeter(pChild->nodeID, 41, pChild->batValue, 0, floatValue, (!pChild->childName.empty()) ? pChild->childName : "Exported Energy");
    
    	}
    	break;
    case V_VAR5:
    	if (pChild->GetValue(vType, floatValue))
    		SendCurrentSensor(cNode, pChild->batValue, floatValue, 0, 0, (!pChild->childName.empty()) ? pChild->childName : "Current");
    	break;
    

    Next find the section: starting: case V_VAR1: //Custom value
    Change as below:

    	case V_VAR1: //Custom value
    	case V_VAR2:
    	case V_VAR3:
    	case V_VAR4:
    	case V_VAR5:
    		pChild->SetValue(vType, (float)atof(payload.c_str()));
    		bHaveValue = true;
    		break;
    

    Find this section: case V_VAR1:
    And change as below

    	case V_VAR1:
    	case V_VAR2:
    	case V_VAR3:
    	case V_VAR4:
    	case V_VAR5:
    		//send back a previous stored custom variable
    		tmpstr = "";
    		GetVar(node_id, child_sensor_id, sub_type, tmpstr);
    		SendNodeCommand(node_id, child_sensor_id, message_type, sub_type, tmpstr);
    		break;
    

    After making changes to the file you must run "make" again to compile domoticz binary.
    It is a lot faster to "make" subsequent times.

    cmake -DCMAKE_BUILD_TYPE=Release -modified .
    make
    
    Domoticz

  • Nodes with S_CUSTOM Values not appearing
    bigalB bigal

    More reading on the Forums seems to point to a need to edit MySensorsBase.cpp
    Not looking forward to that!
    But if there is documentation how to customize MySensorsBase.cpp file I will have a go!

    Here are the relevant parts of my custom Sketch:
    It is an Import/Export Utility meter.

    #define MY_NODE_ID 6
    #define CHILD_ID_KWH 0
    #define CHILD_ID_WATT 0
    #define CHILD_ID_VA 0
    #define CHILD_ID_VOLTAGE 0
    #define CHILD_ID_CURRENT 0
    #define CHILD_ID_FREQ 1
    #define CHILD_ID_MAXWATT 1
    #define CHILD_ID_PF 1
    #define CHILD_ID_KWH_EXPORT 1
    
    
    
     present(CHILD_ID_KWH, S_CUSTOM);
     present(CHILD_ID_WATT, S_CUSTOM);
     present(CHILD_ID_MAXWATT, S_CUSTOM); 
     present(CHILD_ID_VA, S_CUSTOM);
     present(CHILD_ID_VOLTAGE, S_CUSTOM);
     present(CHILD_ID_CURRENT, S_CUSTOM);
     present(CHILD_ID_FREQ, S_CUSTOM); 
     present(CHILD_ID_PF, S_CUSTOM); 
     present(CHILD_ID_KWH_EXPORT, S_CUSTOM);     
    
    MyMessage energyMsg(CHILD_ID_KWH, V_VAR1);
    MyMessage powerMsg(CHILD_ID_WATT, V_VAR2);
    MyMessage vaMsg(CHILD_ID_VA, V_VAR3);
    MyMessage voltageMsg(CHILD_ID_VOLTAGE, V_VAR4);
    MyMessage currentMsg(CHILD_ID_CURRENT, V_VAR5);
    MyMessage freqMsg(CHILD_ID_FREQ, V_VAR1);
    MyMessage powermaxMsg(CHILD_ID_MAXWATT, V_VAR2);
    MyMessage pfMsg(CHILD_ID_PF, V_VAR3);
    MyMessage energyexportMsg(CHILD_ID_KWH_EXPORT, V_VAR4);
    

    Log:

    2016-03-12 21:09:02.115 Domoticz V3.4944 (c)2012-2016 GizMoCuz
    2016-03-12 21:09:02.116 Build Hash: 92e8ef0, Date: 2016-03-11 20:54:56
    2016-03-12 21:09:02.117 Startup Path: /root/domoticz/
    2016-03-12 21:09:02.158 Active notification subsystems: http (1/11)
    2016-03-12 21:09:02.163 WebServer(HTTP) started on address: 0.0.0.0 with port 8080
    2016-03-12 21:09:02.184 WebServer(SSL) started on address: 0.0.0.0 with port 443
    2016-03-12 21:09:02.187 Proxymanager started.
    2016-03-12 21:09:02.190 Starting shared server on: 0.0.0.0:6144
    2016-03-12 21:09:02.193 RxQueue: queue worker started...
    2016-03-12 21:09:02.194 TCPServer: shared server started...
    2016-03-12 21:09:04.196 EventSystem: reset all events...
    2016-03-12 21:09:04.197 EventSystem: reset all device statuses...
    2016-03-12 21:09:04.199 EventSystem: Started
    2016-03-12 21:09:05.199 MySensors: Using serial port: /dev/ttyUSB1
    2016-03-12 21:09:06.685 MySensors: Gateway Ready...
    2016-03-12 21:09:06.761 MySensors: Gateway Version: 2.0.0-beta
    2016-03-12 21:09:23.957 Incoming connection from: 192.168.20.115

    You can see the Node and Children registering in the Domoticz:

    2 MySensors Serial Gateway Yes MySensors Gateway USB
    Version: 2.0.0-beta Setup /dev/ttyUSB1 5 Minutes

    Nodes
    5 Electricity Meter Unknown 1.0 2 2016-03-12 21:11:10
    Children
    0 S_CUSTOM true 2016-03-12 21:11:50
    1 S_CUSTOM true 2016-03-12 21:11:10
    Showing 1 to 2 of 2 entries
    FirstPrevious1NextLast

    Domoticz

  • Nodes with S_CUSTOM Values not appearing
    bigalB bigal

    I have a node with S_CUSTOM V_VAR1, V_VAR2 which is not appearing in Domoticz.
    Domoticz Version is 3.4944
    I am compiling Serial Gateway on Development train
    Sensor Node is on Development train (my sketch needs a lot of RAM).
    Nodes and Children show up but not the values.

    Domoticz

  • Not getting Node ID assigned
    bigalB bigal

    I just compiled the Gateway in the 1.4.2 Mysensors bundle. I compiled a LUX node and a Pressure node, but still no luck, I always get the nodes showing up as Node 254 and overwriting each other.
    So seems my issue may not related to the Gateway Version.

    FHEM

  • Not getting Node ID assigned
    bigalB bigal

    Not concerned with bugs in the UV Sketch as I will make my own sketches once I get the controller to recognize the nodes.
    My plan is to adapt some code to make tank level sensors and an analog (not pulse based) kWh meter. Also planning to control some pumps, so those will be outputs.
    So should I use Arduino 1.4.2 for compiling code for Gateway and all the nodes, yes?

    FHEM

  • Not getting Node ID assigned
    bigalB bigal

    Aha! I thought it might have been a gateway issue. Yes of course I am running ver 1.5 so I will try v1.4.2 and report back how it goes!
    In the meantime here are my configs.
    I have loaded the UV node information into Fhem but it still will not recognize the node.

    Here is my Fhem config.

    attr global userattr cmdIcon devStateIcon devStateStyle icon sortby webCmd widgetOverride
    attr global autoload_undefined_devices 1
    attr global logfile ./log/fhem-%Y-%m.log
    attr global modpath .
    attr global motd SecurityCheck:\
      \
    WEB,WEBphone,WEBtablet has no associated allowed device with basicAuth.\
    telnetPort has no associated allowed device with password/globalpassword.\
    \
    Restart FHEM for a new check if the problem is fixed,\
    or set the global attribute motd to none to supress this message.\
    
    attr global statefile ./log/fhem.save
    attr global updateInBackground 1
    attr global verbose 3
    
    define telnetPort telnet 7072 global
    
    define WEB FHEMWEB 8083 global
    
    define WEBphone FHEMWEB 8084 global
    attr WEBphone stylesheetPrefix smallscreen
    
    define WEBtablet FHEMWEB 8085 global
    attr WEBtablet stylesheetPrefix touchpad
    
    # Fake FileLog entry, to access the fhem log from FHEMWEB 
    define Logfile FileLog ./log/fhem-%Y-%m.log fakelog
    
    define autocreate autocreate
    attr autocreate filelog ./log/%NAME-%Y.log
    
    define eventTypes eventTypes ./log/eventTypes.txt
    
    # Disable this to avoid looking for new USB devices on startup
    define initialUsbCheck notify global:INITIALIZED usb create
    define gateway MYSENSORS /dev/ttyUSB0@57600
    attr gateway autocreate 1
    attr gateway first-sensorid 10
    attr gateway icon it_wireless_dcf77
    attr gateway stateFormat connection
    define UVSensor MYSENSORS_DEVICE 10
    attr UVSensor IODev gateway
    attr UVSensor mapReading_uv 0 uv
    attr UVSensor mode node
    attr UVSensor version 1.2
    

    And a standard UV mysensor Arduino code (no mods).

    /**
     * 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.0 - epierre
     * Contribution: bulldoglowell, gizmocuz
     * 
     * DESCRIPTION
     * Arduino UVM-30A
     * Index table taken from: http://www.elecrow.com/sensors-c-111/environment-c-111_112            
    /uv-sensor-moduleuvm30a-p-716.html
     * Because this table is pretty lineair, we can calculate a UVI with one decimal 
     *
     * Connect sensor:
     *
     *   +   >>> 5V
     *   -   >>> GND
     *   out >>> A0     
     * 
     * License: Attribution-NonCommercial-ShareAlike 3.0 Unported (CC BY-NC-SA 3.0)
     */
    
    #include <SPI.h>
    #include <MySensor.h>  
    #include <MySensor.h>  
    #include <SPI.h>
    
    #define UV_SENSOR_ANALOG_PIN 0
    
    #define CHILD_ID_UV 0
    
    unsigned long SLEEP_TIME = 30*1000; // Sleep time between reads (in milliseconds)
    
    MySensor gw;
    MyMessage uvMsg(CHILD_ID_UV, V_UV);
    
    unsigned long lastSend =0; 
    float uvIndex;
    float lastUV = -1;
    uint16_t uvIndexValue [12] = { 50, 227, 318, 408, 503, 606, 696, 795, 881, 976, 1079, 1170};
    
    void setup()  
    { 
      gw.begin();
    
      // Send the sketch version information to the gateway and Controller
      gw.sendSketchInfo("UV Sensor", "1.2");
    
      // Register all sensors to gateway (they will be created as child devices)
      gw.present(CHILD_ID_UV, S_UV);
    }
    
    void loop()      
    {
      unsigned long currentTime = millis();
    
      uint16_t uv = analogRead(UV_SENSOR_ANALOG_PIN);// Get UV value
      if (uv>1170)
        uv=1170;
    
      //Serial.print("UV Analog reading: ");
      //Serial.println(uv);
    
      int i;
      for (i = 0; i < 12; i++)
      {
        if (uv <= uvIndexValue[i]) 
        {
          uvIndex = i;
          break;
        }
      }
    
      //calculate 1 decimal if possible
      if (i>0) {
        float vRange=uvIndexValue[i]-uvIndexValue[i-1];
        float vCalc=uv-uvIndexValue[i-1];
        uvIndex+=(1.0/vRange)*vCalc-1.0;
      }
    
      //Serial.print("UVI: ");
      //Serial.println(uvIndex,2);
    
      //Send value to gateway if changed, or at least every 5 minutes
      if ((uvIndex != lastUV)||(currentTime-lastSend >= 5UL*60UL*1000UL)) {
          lastSend=currentTime;
          gw.send(uvMsg.set(uvIndex,2));
          lastUV = uvIndex;
      }
    
      gw.sleep(SLEEP_TIME);
    

    }

    FHEM

  • Not getting Node ID assigned
    bigalB bigal

    I will try. I did Google searches but mostly answers are in German.

    FHEM

  • Not getting Node ID assigned
    bigalB bigal

    I still can't work this out. If i turn on inclusion-mode on the serial gateway I always get NODE ID 254 assigned. And if I add a second node it shares the same node id and I end up with attributes for many sensor type all in the same node. It lways gets named MYSENSOR_254. Pulling my hair out for 5 days now... can anyone help?

    FHEM

  • Not getting Node ID assigned
    bigalB bigal

    I have an 8MHz 3.3V Pro Mini Arduino with a NRF24l01 connected to a Olimex A10 (Debian Lime). I have set the Serial gateway to run at 57600 and also created a gateway in Fhem.
    /dev/ttyUSB0@57600 with auotocreate set to 1 and requestAck set to 1.
    I ran all the Fhem updates.
    I have a simple Battery Monitor Node with no Sensor IDs just the battery level. But I cannot see the battery level in the log.
    I only get this message:
    2016.02.11 10:51:53 3: MYSENSORS: ignoring internal-msg from unknown radioId 254, childId 255 for I_BATTERY_LEVEL
    Isn't Fhem supposed to Auto Add Nodes? What am I doing wrong?

    FHEM

  • How do you Purge Node Data?
    bigalB bigal

    Ok thanks,
    New version demo running well. Nice to see the Dashboard!
    I will wait for the 0.3 Alpha release.
    Regards,
    Al

    MyController.org

  • How do you Purge Node Data?
    bigalB bigal

    Hi,
    Do you have an idea for release of that new ver?
    Also I will have a go at installing on an Olimex with A10 CPU.

    Linux lime03 3.4.67+ #4 PREEMPT Sat Dec 14 15:12:10 EET 2013 armv7l GNU/Linux
    Any advice on how to do this?
    Thanks!

    MyController.org

  • How do you Purge Node Data?
    bigalB bigal

    Operating System Windows 8.1
    Architecture amd64
    User working directory C:\Arduino\mycontroller-standalone-0.0.2-alpha5-bundle\mycontroller\bin

    MyController.org

  • How do you Purge Node Data?
    bigalB bigal

    I have a problem loading the plot for a node which contains battery level data.I get a script debug screen popup. I assume it does not like some data in there. I have been doing some grass roots hacking with a Node so maybe the battery level data gout out of range. Anyway I figure if there is a way to purge the data it might start working again. I already tried deleting the node but the data is still there when the node gets auto added.

    MyController.org
  • Login

  • Don't have an account? Register

  • Login or register to search.
  • First post
    Last post
0
  • MySensors
  • OpenHardware.io
  • Categories
  • Recent
  • Tags
  • Popular