Page 12 of 37

Re: Nefit Easy™

Posted: Sunday 17 January 2016 20:11
by marten
stupid stupid stupid,
when entering the access code i typed acces with one S instead of access with two
now it works thanks

Re: Nefit Easy™

Posted: Sunday 17 January 2016 21:32
by dorenberg
Just updated to the new node-red flow. Works like a charm. Just for my info. The flowtemperature: is that inbound water or outbound water? Think outbound. Is there also a sensor for inbound (return water)?

Nefit Easy™

Posted: Sunday 17 January 2016 22:54
by geezerrr
pepijn wrote:
geezerrr wrote:The "openhaardfunctie" would be nice as well
Do you want to set this function? You can read already, you just need to modify your flow the nefit status node show 'fp active' and 'fireplace mode'
How do I modify the flow?
I've added the boiler status to find out how the node-red is working. but it's not giving an output to Dominicz so far
I've did it like this...


Can you point me in the right direction?

Re: Nefit Easy™

Posted: Sunday 17 January 2016 23:35
by pepijn
In this version of the flow (there is a more recent version in one of the previous posts) you need to create an extra if statement Domoticz MQTT function.

Re: Nefit Easy™

Posted: Tuesday 19 January 2016 14:20
by mvveelen
Guys,

I'm using this script on my Synology (/usr/syno/etc/rc.d/easy-server.sh -> this way the service will start after a reboot of the Synology):

Code: Select all

#! /bin/sh
### BEGIN INIT INFO
# Provides:          nefit easy http server
# Required-Start:    $network $remote_fs $syslog
# Required-Stop:     $network $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: nefit-easy-http-server
# Description:       This daemon will start the nefit-easy-http-server for use by Domoticz
### END INIT INFO
 
# Do NOT "set -e"
 
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin
DESC="Nefit Easy HTTP Server"
NAME=easy-server
USERNAME=root
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
NEFIT_SERIAL_NUMBER=serial
NEFIT_ACCESS_KEY=accesskey
NEFIT_PASSWORD=password
NEFIT_HOST=192.168.0.124
NEFIT_PORT=3001
 
 
DAEMON=/usr/local/bin/$NAME
 
DAEMON_ARGS="$DAEMON_ARGS --serial=$NEFIT_SERIAL_NUMBER"
DAEMON_ARGS="$DAEMON_ARGS --access-key=$NEFIT_ACCESS_KEY"
DAEMON_ARGS="$DAEMON_ARGS --password=$NEFIT_PASSWORD"
DAEMON_ARGS="$DAEMON_ARGS --host=$NEFIT_HOST"
DAEMON_ARGS="$DAEMON_ARGS --port=$NEFIT_PORT"
 
 
# Exit if the package is not installed
[ -x "$DAEMON" ] || exit 0
 
#
# Function that starts the daemon/service
#
do_start()
{
    nohup $DAEMON $DAEMON_ARGS &
  echo `ps w | grep ${DAEMON} | grep -v -E 'grep' | awk '{print $1}' > $PIDFILE`
 
 
 
}
 
 
 
wait_for_status ()
{
    counter=$2
    while [ ${counter} -gt 0 ]; do
        do_status
        [ $? -eq $1 ] && return
        let counter=counter-1
        sleep 1
    done
    return 1
}
 
 
 
 
 
#
# Function that stops the daemon/service
#
 
do_stop()
 
{
    # Kill the application
    kill `cat ${PIDFILE}`
    wait_for_status 1 20 || kill -9 `cat ${PIDFILE}`
    rm -f ${PIDFILE}
}
 
 
 
do_status ()
{
    if [ -f ${PIDFILE} ] && kill -0 `cat ${PIDFILE}` > /dev/null 2>&1; then
        return
    fi
    rm -f ${PIDFILE}
    return 1
}
 
 
 
 
 
case "$1" in
  start)
        do_start
        ;;
  stop)
        do_stop
        ;;
  restart)
        do_stop
        do_start
        ;;
  *)
        echo "Usage: $SCRIPTNAME {start|stop|restart}" >&2
        exit 3
        ;;
esac
 
:
When I use this script (which seems OK ? Or not?) in Monit it doesn't work. Or the start-stop script in Monit isn't OK? This is what I use:

Code: Select all

check process easy-server with pidfile /var/run/easy-server.pid
    start program = "/usr/syno/etc/rc.d/S99easy-server.sh start"
    stop program  = "/usr/syno/etc/rc.d/S99easy-server.sh stop"
    if failed host localhost port 3001 then restart
    if 3 restarts within 5 cycles then timeout
    if cpu is greater than 40% for 2 cycles then alert
    if memory > 110 MB then restart
The easy-ser.pid file is created (in /var/run/easy-server.pid) with the process-number in it. Using the CLI I can start and stop it, but Monit doesn't handle it the way it should be handled.

Who can spot the fault(s) ?

-> by the way: the service is already running for a few days now, but I want to be able to let it be monitored bij Monit so IF it crashes, it will be started directly by Monit <-

Re: Nefit Easy™

Posted: Saturday 23 January 2016 8:54
by SweetPants
Guys, is there anybody else experiencing problems with the Nefit backend? Last three to four days almost every morning the backend does not respond anymore for several hours both via the API and the app.

Re: Nefit Easy™

Posted: Saturday 23 January 2016 9:17
by geezerrr
pepijn wrote:In this version of the flow (there is a more recent version in one of the previous posts) you need to create an extra if statement Domoticz MQTT function.
Found it, and it's working! Thnx!
Small question;
The status of the boiler is in English and the central heating status is Dutch.
Can we change both to the same language?
ImageUploadedByTapatalk1453537002.834112.jpg
ImageUploadedByTapatalk1453537002.834112.jpg (169.77 KiB) Viewed 3900 times

Re: Nefit Easy™

Posted: Saturday 23 January 2016 9:22
by pepijn
SweetPants wrote:Guys, is there anybody else experiencing problems with the Nefit backend? Last three to four days almost every morning the backend does not respond anymore for several hours both via the API and the app.
What method do you use to communicate? If you use a script or CLI, every time you connect a new login session will be started. In the past this occured the same behaviour for me.
When using the HTTP server or Node-RED node, the authentication is only done once (at startup) and the session will be kept open.

Re: Nefit Easy™

Posted: Saturday 23 January 2016 9:24
by pepijn
geezerrr wrote:
pepijn wrote:In this version of the flow (there is a more recent version in one of the previous posts) you need to create an extra if statement Domoticz MQTT function.
Found it, and it's working! Thnx!
Small question;
The status of the boiler is in English and the central heating status is Dutch.
Can we change both to the same language?
ImageUploadedByTapatalk1453537002.834112.jpg
Right now i use the output from the Nefit Easy library (https://github.com/robertklep/nefit-easy-commands) so it cannot be changed easily.
I will put it on the wishlist :)

Re: Nefit Easy™

Posted: Saturday 23 January 2016 12:59
by SweetPants
pepijn wrote:What method do you use to communicate? If you use a script or CLI, every time you connect a new login session will be started. In the past this occured the same behaviour for me. When using the HTTP server or Node-RED node, the authentication is only done once (at startup) and the session will be kept open.
I'm also using the server and only connect locally (127.0.0.1:3000). Every 30 sec I ask for the Nefit status and outside temp. using the local server. It now happened 3 days in a row where i could not communicate with the backend using script and Android app. Going to make a packet trace to see what is happening from my side.

Re: Nefit Easy™

Posted: Saturday 23 January 2016 14:20
by dorenberg
Had exactly the same. Just uninstalled the old client version. I think it is related to this. When nefit didn't response. RFXCOM and my youless stopped as well. Restart of course helped.

Re: Nefit Easy™

Posted: Sunday 24 January 2016 14:44
by Doler
Had to stop the Nefit-Easy flows by stopping node-RED. After running a day or so, Domoticz hardware stopped resulting in a non-responsive system. Domoticz itself kept running (domoticz.sh status) but no UI and no interaction with actors and sensors except for system sensors (one repeating log message: "Hardware Monitor: Fetching data (System sensors"). Possibly issue with mqtt, see also viewtopic.php?f=6&t=8675.
I had this problem a couple of times with the only cure a restart of Domoticz. Since I stopped node-RED I didn't see the problem again. I'll have to wait for the problem to get solved before I can use the flows again, which is a pity because the flows itself work like a charm :cry:
Mark

Re: Nefit Easy™

Posted: Sunday 24 January 2016 14:46
by Marcel
Hi All, on the rainy Sunday I'dd also like too attempt to get this working... I have a question though, which install do I use as the page were the previous install is referring to is deprecated.

nefit-easy-cli if you are looking for the command line interface
nefit-easy-http-server if you are looking for the HTTP server
nefit-easy-commands if you are looking for the client library that implements high-level commands
nefit-easy-core if you are looking for the client library that implements the core functionality of communicating with the Nefit/Bosch backend.


Great work by you all!!!

Re: Nefit Easy™

Posted: Sunday 24 January 2016 21:48
by kraades
You need the hhtp server.

Re: Nefit Easy™

Posted: Sunday 24 January 2016 21:56
by Holland
It depends. If you want to get it running via node red, just install http://flows.nodered.org/node/node-red- ... nefit-easy and you are fine.

For the build in (Domoticz) Nefit functionality you need to install the http server

Re: Nefit Easy™

Posted: Tuesday 26 January 2016 22:01
by sanderl
Ok read the entire post and I am impressed!
Iam experimenting with domoticz running on my synology nas fine. Today I was looking in the hardware list and I saw this Nefit Easy HTTP server over LAN interface. I filled in the ip address and tried some port numbers... despite. And then after reading this entire post with all kid of versions, scripts, http server, versions (pi etc)... what do I do, where do i start? Can i fet some directions please?

Re: Nefit Easy™

Posted: Tuesday 26 January 2016 22:16
by pepijn
Doler wrote:Had to stop the Nefit-Easy flows by stopping node-RED. After running a day or so, Domoticz hardware stopped resulting in a non-responsive system. Domoticz itself kept running (domoticz.sh status) but no UI and no interaction with actors and sensors except for system sensors (one repeating log message: "Hardware Monitor: Fetching data (System sensors"). Possibly issue with mqtt, see also viewtopic.php?f=6&t=8675.
I had this problem a couple of times with the only cure a restart of Domoticz. Since I stopped node-RED I didn't see the problem again. I'll have to wait for the problem to get solved before I can use the flows again, which is a pity because the flows itself work like a charm :cry:
Mark

I modified the flow to use JSON HTTP instead of MQTT. Now i only use MQTT for setpoint changes. Please note you have to edit the Build HTTP Request function to your Domoticz settings.

Code: Select all

[{"id":"2070e95a.a9555a","type":"nefit-easy-config","z":"b83a61b3.47c5a","serialNumber":"","accessKey":"","password":"","timeout":"60"},{"id":"86f0c28c.790f4","type":"mqtt-broker","z":"","broker":"127.0.0.1","port":"1883","clientid":"","usetls":false,"verifyservercert":true,"compatmode":true,"keepalive":"60","cleansession":true,"willTopic":"","willQos":"0","willRetain":null,"willPayload":"","birthTopic":"","birthQos":"0","birthRetain":null,"birthPayload":""},{"id":"f0310caa.577e2","type":"inject","z":"b83a61b3.47c5a","name":"","topic":"nefit-status","payload":"","payloadType":"date","repeat":"30","crontab":"","once":true,"x":124,"y":75.35716247558594,"wires":[["c36e75f0.089e4"]]},{"id":"9fa51e6d.4853c","type":"debug","z":"b83a61b3.47c5a","name":"","active":true,"console":"true","complete":"true","x":1626.7540283203125,"y":217.60714721679688,"wires":[]},{"id":"e21d13d7.54d608","type":"mqtt in","z":"b83a61b3.47c5a","name":"domoticz/out/#","topic":"domoticz/out/#","broker":"86f0c28c.790f4","x":88.07138061523438,"y":617,"wires":[["be46893b.ec1a7"]]},{"id":"be46893b.ec1a7","type":"function","z":"b83a61b3.47c5a","name":"de-jsonify","func":"var payload = JSON.parse(msg.payload);\nreturn payload;","outputs":1,"noerr":0,"x":254.07138061523438,"y":617,"wires":[["82aa37b1.26f148"]]},{"id":"8f458b60.6c998","type":"debug","z":"b83a61b3.47c5a","name":"","active":false,"console":"false","complete":"true","x":965.3214111328125,"y":615.7500019073486,"wires":[]},{"id":"10471660.16b0ca","type":"function","z":"b83a61b3.47c5a","name":"Get SetPoint Value","func":"msg.payload = msg.svalue1\nreturn msg;","outputs":1,"noerr":0,"x":633.2658462524414,"y":616.0833168029785,"wires":[["de4fda49.b134f"]]},{"id":"82aa37b1.26f148","type":"switch","z":"b83a61b3.47c5a","name":"filter Setpoint IDX","property":"idx","rules":[{"t":"eq","v":"160"}],"checkall":"true","outputs":1,"x":432.51580810546875,"y":616.5555419921875,"wires":[["10471660.16b0ca"]]},{"id":"71ac80f8.677704","type":"comment","z":"b83a61b3.47c5a","name":"Read changes from Domoticz and send to Easy","info":"","x":189.07138061523438,"y":580,"wires":[]},{"id":"a47fff4f.db6778","type":"function","z":"b83a61b3.47c5a","name":"Domoticz MQTT","func":"// Configuration , set to -1 if you dont want to use the sensor\nvar IDX = {};\nIDX['nefit-setpoint'] = 160;\nIDX['nefit-roomtemp'] = 161;\nIDX['nefit-outdoortemp'] = 167;\nIDX['nefit-pressure'] = 162;\nIDX['nefit-boilerindicator'] = 168;\nIDX['nefit-statuscode'] = 163;\nIDX['nefit-flow-temperature'] =164;\n\n// Create message\nvar domoticz_msg = {};\ndomoticz_msg.topic = \"domoticz/in\";\ndomoticz_msg.payload = {};\n\nswitch (msg.topic) {\n    // Topics from nefit-status\n    case 'nefit-roomtemp'  :\n    case 'nefit-outdoortemp'  :\n    case 'nefit-boilerindicator':\n    case 'nefit-setpoint'  :\n    case 'nefit-statuscode' :\n        if (IDX[msg.topic] != -1) {\n            domoticz_msg.payload.idx = IDX[msg.topic];\n            domoticz_msg.payload.nvalue = 0;\n            domoticz_msg.payload.svalue = \"\" + msg.payload;\n            if (msg.topic == 'nefit-setpoint') {\n                domoticz_msg.output = 'mqtt'\n                domoticz_msg.payload.parse = false;\n            }\n        }\n\n        break;\n    case 'nefit-pressure'  :\n        if (IDX[msg.topic] != -1) {\n            var NefitJSON = JSON.parse(msg.payload);\n            domoticz_msg.payload.idx = IDX[msg.topic];\n            domoticz_msg.payload.nvalue = 0;\n            domoticz_msg.payload.svalue = \"\" + NefitJSON['pressure'];\n        }\n        break;\n    case 'nefit-flow-temperature' :\n        if (IDX[msg.topic])  {\n            var NefitJSON = JSON.parse(msg.payload);\n            domoticz_msg.payload.idx = IDX[msg.topic];\n            domoticz_msg.payload.nvalue = 0;\n            domoticz_msg.payload.svalue = \"\" + NefitJSON['temperature'];\n        }\n        break;\n    default:\n        return;\n}\n\nreturn domoticz_msg;\n","outputs":1,"noerr":0,"x":1063,"y":215.21429443359375,"wires":[["3a68092b.2a46ee"]]},{"id":"e232a850.baa2c","type":"mqtt out","z":"b83a61b3.47c5a","name":"Domoticz MQTT","topic":"","qos":"","retain":"","broker":"86f0c28c.790f4","x":1441.75,"y":314.96429443359375,"wires":[]},{"id":"2b74b537.2f9dc6","type":"inject","z":"b83a61b3.47c5a","name":"","topic":"nefit-pressure","payload":"","payloadType":"date","repeat":"300","crontab":"","once":false,"x":125,"y":305.357177734375,"wires":[["6d1aa742.8cfab8"]]},{"id":"e182c879.f16fd8","type":"comment","z":"b83a61b3.47c5a","name":"Publish data from Nefit Easy Client to Domoticz","info":"","x":187.07138061523438,"y":22,"wires":[]},{"id":"f506871a.acbe7","type":"rbe","z":"b83a61b3.47c5a","name":"","func":"rbe","gap":"","x":826.0714111328125,"y":56,"wires":[["a47fff4f.db6778"]]},{"id":"6ee39037.bb5c4c","type":"function","z":"b83a61b3.47c5a","name":"Parse JSON","func":"var NefitJSON = JSON.parse(msg.payload);\nmsg1 = {};\nmsg2 = {};\nmsg3 = {};\nmsg4 = {};\nmsg1.topic = 'nefit-setpoint';\nmsg1.payload = NefitJSON['temp setpoint'];\nmsg2.topic = 'nefit-roomtemp';\nmsg2.payload = NefitJSON['in house temp'];\nmsg3.topic = 'nefit-outdoortemp';\nmsg3.payload = NefitJSON['outdoor temp'];\nmsg4.topic = 'nefit-boilerindicator';\nmsg4.payload = NefitJSON['boiler indicator'];\nreturn [msg1,msg2,msg3,msg4];","outputs":"4","noerr":0,"x":622.5714111328125,"y":75.00001525878906,"wires":[["f506871a.acbe7"],["a47fff4f.db6778"],["a47fff4f.db6778"],["d369a91.8270318"]]},{"id":"fb1d1576.db6fb","type":"inject","z":"b83a61b3.47c5a","name":"","topic":"nefit-statuscode","payload":"","payloadType":"date","repeat":"60","crontab":"","once":false,"x":121.142822265625,"y":241.10716247558594,"wires":[["a4070a6c.adf5c"]]},{"id":"b169b9e6.8e827","type":"rbe","z":"b83a61b3.47c5a","name":"","func":"rbe","gap":"","x":798.142822265625,"y":251.57144165039062,"wires":[["a47fff4f.db6778"]]},{"id":"c36e75f0.089e4","type":"nefit-easy","z":"b83a61b3.47c5a","easyconfig":"2070e95a.a9555a","name":"","topic":"nefit-status","command":"status","x":300.5,"y":75.35716247558594,"wires":[["85ad8d13.d10d2"]]},{"id":"a4070a6c.adf5c","type":"nefit-easy","z":"b83a61b3.47c5a","easyconfig":"2070e95a.a9555a","name":"","topic":"nefit-statuscode","command":"display-code","x":296.5,"y":241.85716247558594,"wires":[["7e8c3906.0149c8"]]},{"id":"6d1aa742.8cfab8","type":"nefit-easy","z":"b83a61b3.47c5a","easyconfig":"2070e95a.a9555a","name":"","topic":"nefit-pressure","command":"pressure","x":297.5,"y":305.357177734375,"wires":[["147e4cc.4f491b3"]]},{"id":"de4fda49.b134f","type":"nefit-easy","z":"b83a61b3.47c5a","easyconfig":"2070e95a.a9555a","name":"","topic":"nefit-set","command":"set-temperature","x":810.0714111328125,"y":616.0000019073486,"wires":[["8f458b60.6c998"]]},{"id":"7e8c3906.0149c8","type":"json","z":"b83a61b3.47c5a","name":"","x":467.5,"y":241.85716247558594,"wires":[["389ea7b4.e23c38"]]},{"id":"85ad8d13.d10d2","type":"json","z":"b83a61b3.47c5a","name":"","x":455,"y":75.35716247558594,"wires":[["6ee39037.bb5c4c"]]},{"id":"d369a91.8270318","type":"rbe","z":"b83a61b3.47c5a","name":"","func":"rbe","gap":"","x":799.0714111328125,"y":201,"wires":[["a47fff4f.db6778"]]},{"id":"efab4bc5.94d228","type":"inject","z":"b83a61b3.47c5a","name":"","topic":"nefit-flow-temperature","payload":"","payloadType":"date","repeat":"300","crontab":"","once":false,"x":122,"y":382.00001525878906,"wires":[["2cb0fac.7081c06"]]},{"id":"2cb0fac.7081c06","type":"nefit-easy","z":"b83a61b3.47c5a","easyconfig":"2070e95a.a9555a","name":"","topic":"nefit-flow-temperature","command":"flow-temperature","x":443,"y":383.00001525878906,"wires":[["f797913b.e0a45"]]},{"id":"f797913b.e0a45","type":"json","z":"b83a61b3.47c5a","name":"","x":799,"y":382.00001525878906,"wires":[["a47fff4f.db6778"]]},{"id":"389ea7b4.e23c38","type":"function","z":"b83a61b3.47c5a","name":"Get Status Code","func":"var NefitJSON = JSON.parse(msg.payload);\nmsg.topic = 'nefit-statuscode';\nmsg.payload = \"\"+\"[ \"+NefitJSON['code']+\" ] \"+NefitJSON['description'];\nreturn msg;","outputs":1,"noerr":0,"x":630,"y":241.35714721679688,"wires":[["b169b9e6.8e827"]]},{"id":"147e4cc.4f491b3","type":"json","z":"b83a61b3.47c5a","name":"","x":799,"y":304,"wires":[["a47fff4f.db6778"]]},{"id":"61364b6f.65f384","type":"function","z":"b83a61b3.47c5a","name":"Build HTTP Request","func":"msg.url = 'http://172.30.0.10/json.htm?type=command&param=udevice&idx='+msg.payload.idx+'&nvalue='+msg.payload.nvalue+'&svalue='+msg.payload.svalue\nreturn msg;","outputs":1,"noerr":0,"x":1447,"y":120,"wires":[["10163004.9a9628","9fa51e6d.4853c"]]},{"id":"10163004.9a9628","type":"http request","z":"b83a61b3.47c5a","name":"Domoticz HTTP","method":"GET","ret":"txt","url":"","x":1682,"y":123,"wires":[["9fa51e6d.4853c"]]},{"id":"3a68092b.2a46ee","type":"switch","z":"b83a61b3.47c5a","name":"Output Method","property":"output","rules":[{"t":"else"},{"t":"eq","v":"mqtt"}],"checkall":"true","outputs":2,"x":1246,"y":218,"wires":[["61364b6f.65f384"],["e232a850.baa2c","9fa51e6d.4853c"]]}]

Re: Nefit Easy™

Posted: Wednesday 27 January 2016 11:51
by Doler
pepijn wrote: I modified the flow to use JSON HTTP instead of MQTT. Now i only use MQTT for setpoint changes. Please note you have to edit the Build HTTP Request function to your Domoticz settings.
Pepijn, thanks. I've got it running and will see if this is more stable. I'll keep you updated.

BTW. for the HTTP Request function I just used '127.0.0.1:8080'.

Thanks, Mark

Re: Nefit Easy™

Posted: Friday 29 January 2016 17:08
by kraades
sanderl wrote:Ok read the entire post and I am impressed!
Iam experimenting with domoticz running on my synology nas fine. Today I was looking in the hardware list and I saw this Nefit Easy HTTP server over LAN interface. I filled in the ip address and tried some port numbers... despite. And then after reading this entire post with all kid of versions, scripts, http server, versions (pi etc)... what do I do, where do i start? Can i fet some directions please?
If you use the build-in Easy support you need the easy http server.
If you want to run it on your Synology you need to install node v4.x or higher. You can try to download the binaries from nodejs.org. The arch arm, x86 etc. depends on the Synology that you have.
You cannot use the nodejs package from synocommunity (version is too old).
If you have node and npm installed (=download en unpack in for example /usr/local/bin) you can install the easy http server using npm.

Re: Nefit Easy™

Posted: Sunday 31 January 2016 20:51
by kraades
Not really related to Domoticz but there is also a C# client being developed.
http://gathering.tweakers.net/forum/lis ... 5#45707875 (Dutch)