Vorstellung: hm2mqtt & mqtt-smarthome

diverse Zusatzsoftware

Moderator: Co-Administratoren

hobbyquaker
Beiträge: 3978
Registriert: 12.07.2009, 20:01
Hat sich bedankt: 17 Mal
Danksagung erhalten: 176 Mal
Kontaktdaten:

Re: Vorstellung: hm2mqtt & mqtt-smarthome

Beitrag von hobbyquaker » 13.04.2017, 22:14

hm2mqtt.js

Da ich eine gewisse Aversion gegen Java habe und mir in hm2mqtt ein paar Features gefehlt haben (Homematic IP bzw. XMLRPC Support, sowie die Möglichkeit beliebige RPC Kommandos via MQTT auszuführen) habe ich mich entschlossen das ganze noch mal neu auf Node.js zu implementieren. Rausgekommen ist bis jetzt das hier: https://github.com/hobbyquaker/hm2mqtt.js

Feedback willkommen, bevorzugt im Github Issue tracker.

HomeManiac
Beiträge: 72
Registriert: 24.12.2015, 13:13
Hat sich bedankt: 2 Mal

Re: Vorstellung: hm2mqtt & mqtt-smarthome

Beitrag von HomeManiac » 14.04.2017, 08:35

Hallo,

uiiii. Ein Sprachwechsel :shock: und neue Features :D.

Nachdem ich gerade vor 2 Wochen auf "mqtt & Node-red" umgestiegen bin gibt es jetzt eine neue/andere mqtt Implementierung für homematic.
Aber schön dass das Thema hm2mqtt weiter gepflegt wird :D
It's kind of the same like the original hm2mqtt, but it supports XMLRPC (hm2mqtt only supports BINRPC), so it can be used with Homematic IP also.
In wie weit sind denn beide Versionen kompatibel? Hast Du Migrationshilfen/-hinweise?

Werner

hobbyquaker
Beiträge: 3978
Registriert: 12.07.2009, 20:01
Hat sich bedankt: 17 Mal
Danksagung erhalten: 176 Mal
Kontaktdaten:

Re: Vorstellung: hm2mqtt & mqtt-smarthome

Beitrag von hobbyquaker » 16.04.2017, 13:26

Sollte "weitgehend" kompatibel sein. Die Topic-Struktur ist die gleiche, bei den status-payloads gab es kleine Änderungen in der Nomenklatur der zusätzlichen Attribute (hm_unit und hm_addr z.B.). Wenn die bei Dir keine Rolle spielen sollte es 1:1 austauschbar sein.
Die Command-Line parameter sind anders benannt, am besten einfach mal mit --help aufrufen.

HomeManiac
Beiträge: 72
Registriert: 24.12.2015, 13:13
Hat sich bedankt: 2 Mal

Re: Vorstellung: hm2mqtt & mqtt-smarthome

Beitrag von HomeManiac » 16.04.2017, 18:26

Leider scheint es nicht mir der nodejs Version 4.2.6 kompatibel zu sein :( -der Standardversion von Ubunutu Xenial:

Code: Alles auswählen

nodejs/xenial-updates,now 4.2.6~dfsg-1ubuntu4.1 amd64  [installiert]
  evented I/O for V8 javascript

Code: Alles auswählen

# hm2mqtt --help
/usr/local/lib/node_modules/hm2mqtt/index.js:23
let names = {};
^^^

SyntaxError: Block-scoped declarations (let, const, function, class) not yet supported outside strict mode
    at exports.runInThisContext (vm.js:53:16)
    at Module._compile (module.js:374:25)
    at Object.Module._extensions..js (module.js:417:10)
    at Module.load (module.js:344:32)
    at Function.Module._load (module.js:301:12)
    at Function.Module.runMain (module.js:442:10)
    at startup (node.js:136:18)
    at node.js:966:3
root@HomeAuto2:/opt/hm2mqtt_js# 
Welche Version von nodejs soll ich denn nehmen?
In der gleiche VM läuft auch node-red. Wäre diese Version kompatibel mir norde-red?

Vielen Dank & freundliche Grüße
Werner

hobbyquaker
Beiträge: 3978
Registriert: 12.07.2009, 20:01
Hat sich bedankt: 17 Mal
Danksagung erhalten: 176 Mal
Kontaktdaten:

Re: Vorstellung: hm2mqtt & mqtt-smarthome

Beitrag von hobbyquaker » 16.04.2017, 18:56

Oh ja - gut dass Du mich dran erinnerst, muss die benötigte Node Version noch in die Readme und in die package.json schreiben. Ich nutze die aktuelle LTS (6.10) - damit läuft bei mir auch Node-RED. Sollte aber auch mit der current (7.9) laufen. Um Node zu installieren empfehle ich immer https://github.com/tj/n - damit ist es auch sehr komfortabel möglich mehrere Versionen parallel zu nutzen.

HomeManiac
Beiträge: 72
Registriert: 24.12.2015, 13:13
Hat sich bedankt: 2 Mal

Re: Vorstellung: hm2mqtt & mqtt-smarthome

Beitrag von HomeManiac » 16.04.2017, 20:06

Auf anhieb :mrgreen:

Code: Alles auswählen

# n use lts /usr/local/bin/hm2mqtt --help
hm2mqtt 0.0.7
Interface between Homematic and MQTT

Usage: /usr/local/bin/hm2mqtt [options]

Optionen:
  --rega-poll-interval           Interval in seconds to poll variables from
                                 Rega. Set to 0 to disable polling [Standard: 0]
  --rega-poll-trigger            A virtual button that triggers a variable poll.
                                 Example: BidCoS-RF:50.PRESS_SHORT[Standard: ""]
  --version                      Version anzeigen                      [boolean]
  -d, --disable-rega             Don't sync names from ReGa    [Standard: false]
  -h, --help                     Hilfe anzeigen                        [boolean]
  -i, --ping-interval            Send a Ping if no event occured in the last
                                 interval. Re-Init on next interval
                                                                  [Standard: 30]
  -j, --json-name-table          A JSON file that maps device and channel
                                 addresses to names
  -m, --mqtt-url                 mqtt broker url. See
                                 https://github.com/mqttjs/MQTT.js#connect-using
                                 -a-url           [Standard: "mqtt://127.0.0.1"]
  -n, --name                     instance name. used as mqtt client id and as
                                 prefix for connected topic     [Standard: "hm"]
  -p, --mqtt-password            mqtt broker password
  -u, --mqtt-username            mqtt broker username
  -v, --verbosity                possible values: "error", "warn", "info",
                                 "debug"                      [Standard: "info"]
  -a, --ccu-address                                               [erforderlich]
  -r, --listen-address                               [Standard: "192.168.2.160"]
  -l, --listen-port                                             [Standard: 2126]
  -b, --binrpc-listen-port                                      [Standard: 2127]
  -q, --hmip-reconnect-interval                                  [Standard: 600]
So, jetzt morgen werde ich mal anfangen zu testen 8)

hobbyquaker
Beiträge: 3978
Registriert: 12.07.2009, 20:01
Hat sich bedankt: 17 Mal
Danksagung erhalten: 176 Mal
Kontaktdaten:

Re: Vorstellung: hm2mqtt & mqtt-smarthome

Beitrag von hobbyquaker » 05.05.2017, 22:30

Habe ein kleines Howto verfasst um den Einstieg in mqtt-smarthome mit hm2mqtt.js, Node-Red und Node-Red-Dashboard zu erleichtern:

https://github.com/mqtt-smarthome/mqtt- ... mematic.md

roadfox
Beiträge: 3
Registriert: 08.06.2016, 09:09

Re: Vorstellung: hm2mqtt & mqtt-smarthome

Beitrag von roadfox » 08.05.2017, 17:31

hab mich heute mal an den wechsel von hm2mqtt nach hm2mqtt.js gewagt.
zuerst war mir überhaubt nicht klar wo ich das installieren muss, das alte hab ich ja in der CCU2 unter zusatzsoftware installiert und konfiguriert.
das neue hab ich jetz mal auf einem raspian im selben netzwerk wie die CCU2 installiert und kriege es wohl auch zum laufen, zuindest stehem in den logs solche sachen drinn:

Code: Alles auswählen

0|hm2mqtt  | 2017-05-08 17:12:02.609 <info>  hm2mqtt 1.0.6 starting
0|hm2mqtt  | 2017-05-08 17:12:02.952 <info>  mqtt trying to connect mqtt://mqttserver.local:1883
0|hm2mqtt  | 2017-05-08 17:12:03.583 <info>  loading names_10.1.1.100
0|hm2mqtt  | 2017-05-08 17:12:04.478 <info>  rpc rfd > init [ 'xmlrpc_bin://10.1.1.101:2127', 'hm2mqtt_rfd' ]
0|hm2mqtt  | 2017-05-08 17:12:05.662 <info>  mqtt connected mqtt://mqttserver.local:1883
0|hm2mqtt  | 2017-05-08 17:12:05.710 <info>  mqtt subscribe hm/set/#
0|hm2mqtt  | 2017-05-08 17:12:05.748 <info>  mqtt subscribe hm/rpc/#
0|hm2mqtt  | 2017-05-08 17:12:05.762 <info>  mqtt subscribe hm/command/#
0|hm2mqtt  | 2017-05-08 17:12:05.888 <error> mqtt < hm/set/Waschkueche/Thermostat/Thermostat/SET_TEMPERATURE 14
0|hm2mqtt  | 2017-05-08 17:12:05.905 <error> mqtt < hm/set/Waschkueche/Heizung/Status/STATE 0
0|hm2mqtt  | 2017-05-08 17:12:06.051 <info>  saving names_10.1.1.100
0|hm2mqtt  | 2017-05-08 17:12:12.340 <info>  rfd got 90 devices and channels
0|hm2mqtt  | 2017-05-08 17:12:12.365 <info>  got 28 paramsetDescriptions
ab da passiert aber nix mehr

wie man sehen kann führen meine publish welche unter der alten software funktioniet habe zu fehlern
auch wird von hm2mqtt.js nicht nach mqtt publiziert

was hab ich falsch begriffen/gemacht?
wozu öffnet hm2mqtt port 2127?
werde ich wenn es denn mal läuft "hm/status/Therm Schlafzimmer OG Temp/CONTROL_MODE" umstellen können (das habe ich unetr der alten software nicht hingekriegt)?

liebe Grüsse
Andi

roadfox
Beiträge: 3
Registriert: 08.06.2016, 09:09

Re: Vorstellung: hm2mqtt & mqtt-smarthome

Beitrag von roadfox » 09.05.2017, 20:07

hm2mqtt.js läuft nun, nach restarten aller dienste hats dan geklapt.
für das problem

Code: Alles auswählen

<error> mqtt < hm/set/Waschkueche/Thermostat/Thermostat/SET_TEMPERATURE 14
ist ein issue auf github offen, im moment ist es so das Sensornamen mit einem "/" nicht konfiguriert werden können.

nun hab ich in vergangenheit ein "get" auf einen sensornamen machen können um z.b. nach einem neustart von node-red den status eines sensors sofort zu erhalten
z.B.: hm/get/Waschkueche/Heizung/Status/STATE
get scheint es in hm2mqtt.js nicht mehr zu geben, gibt es einen erstz für "get"?

HomeManiac
Beiträge: 72
Registriert: 24.12.2015, 13:13
Hat sich bedankt: 2 Mal

Re: Vorstellung: hm2mqtt & mqtt-smarthome

Beitrag von HomeManiac » 09.05.2017, 20:54

?? war das nicht "status"?

Also ich teste das immer wie folgt:

Ich lasse mir alle (Wildcard: '#') hm Geräte vom MQTT Broker geben:

Code: Alles auswählen

mosquitto_sub -h localhost -v -t "hm/#"
und "grep"e dann auf die Gwünschten:

Code: Alles auswählen

mosquitto_sub -h localhost -v -t "hm/#" | grep Ambi
hm/status/G_AKT_SENS_WohnzimmerAmbientLichtschalter/STATE {"val":1,"ts":"1494355255885","lc":"1494355194301","hm_addr":"NEQ0274265:1"}
hm/status/G_AKT_SENS_WohnzimmerAmbientLichtschalter/WORKING {"val":1,"ts":"1494355255886","lc":"1494355254062","hm_addr":"NEQ0274265:1"}
hm/set/G_AKT_SENS_WohnzimmerAmbientLichtschalter/STATE 1

Antworten

Zurück zu „Sonstige Addons“