NEWS
[Neuer Adapter] Z-Wave 2 (Alpha-Test)
-
Hallo zusammen!
Ich habe nach langer Zeit mal wieder etwas neues zu ioBroker beizutragen. Da ich mich vor ca. 2 Jahren über das lahme Entwicklungstempo bei OpenZWave geärgert habe, habe ich begonnen, meinen eigenen Treiber zu schreiben. Zwar geht es dort inzwischen weiter, aber ganz zufrieden mit der Einbindung bin ich immer noch nicht.
Dieser neue Treiber ist nun in den neuen Adapter ioBroker.zwave2 eingeflossen, den ich gestern in einer frühen Alpha-Version (v0.1.2) veröffentlicht habe. Installiert werden kann er jetzt schon über npm oder von GitHub, ab morgen dann auch aus dem latest-Repo.
Der Adapter benötigt keine nativen Module außerserialport
, welches schon in einigen anderen Adaptern enthalten ist. Das bedeutet, dass die bekannten Z-Wave-Probleme bei der Installation Geschichte sind.Ich freue mich über jeden Tester, der Lust hat, hier etwas beizutragen. Bitte erwartet nicht zu viel, ein paar Dinge gehen schon, vieles aber noch nicht bzw. nicht richtig. Mich interessiert vor allem, ob es in bestimmten Fällen Abstürze oder unerwartetes Verhalten gibt.
Was geht schon?
-
Auswerten (und zum Teil steuern) der folgenden Kommandoklassen (der Fortschritt wird hier getrackt):
- Basic
- Battery
- Binary Sensor
- Binary Switch
- Central Scene (ja, direkt zu Beginn!)
- Manufacturer Specific
- Multilevel Sensor
- Multilevel Switch
- Notification (teilweise)
- Thermostat Mode
- Thermostat Operating State (teilweise)
- Version
- Wake Up
- Z-Wave+
-
Netzwerkübersicht im Konfigurations-Dialog:
Nicht wundern, wenn ich nicht sofort antworte - ab Samstag ist Urlaub angesagt!
-
-
Hallo,
danke für die Alternative. Ich habe es auf meinem Testsytem (Raspi3b+) installiert. Auf meinem Testsystem habe ich einen Vision Stick, der scheinbar auch erkannt wird (unter Einstellung der zwave2 Instanz -> NetworkMap wird Node1 angezeigt). Nun wollte ich ein weiteres Gerät hinzufügen. Wo kann ich das tun? In der config der zwave2 Instanz habe ich nur zwei Reiter (Settings und Network Map).
Gruß und schönen Urlaub,,,
Michael -
Eine Frage dazu, die Gerätespezifikationen sind ja bei Projekten wie openzwave immer ein Haufen Arbeit. Dort ist die Community sehr groß, somit geht die Pflege von neuen z-wave Geräten (zumindest mit 1.6) einigermaßen schnell.
Wie willst du das bei deinem Adapter machen? -
@LaplaceII sagte in [Neuer Adapter] Z-Wave 2 (Alpha-Test):
Nun wollte ich ein weiteres Gerät hinzufügen.
Das geht noch nicht. Der Treiber kann es, die UI hierzu fehlt noch. Vorerst musst du diese Späße leider noch über den originalen Z-Wave-Adapter machen.
@cburghardt sagte in [Neuer Adapter] Z-Wave 2 (Alpha-Test):
Wie willst du das bei deinem Adapter machen?
Zum Start würde ich mich bei den Konfigurationen bedienen. https://www.cd-jackson.com/index.php/zwave/zwave-device-database/zwave-device-list hat eine schöne Liste, die auch für die verschiedenen Softwares (OZW, OpenHab) exportierbar ist.
Danach muss man halt sehen... Vieles geht out of the box, kritisch sind IMO nur die Beschreibungen der Konfig-Parameter und Association Groups. -
dann werde ich mir mal ein stick besorgen für mein DEV-system.
-
Habe auf eine Node in der network map geklickt:
-
@cburghardt welches Betriebssystem? Das kommt übrigens von dem Auswahldropdown, nicht von der Karte
-
Hmm ich habe kein Auswahldropdown. Ist ein Debian, läuft im Docker container (buanet).
-
@cburghardt dann wird von serialport für die Ermittlung der Ports das vorhandensein eines bestimmten Pakets erwartet, was im docker image nicht enthalten ist. Ich werde nach dem Urlaub mal schauen welches das ist.
-
@cburghardt hilft die Installation von udev wie in diesem link?
https://github.com/ioBroker/ioBroker.zigbee/issues/123#issuecomment-472299420 -
Ja, das hat geholfen, danke.
-
hallo, ich würde gerne mit testen, nur leider bekomme ich den adapter unter ubuntu 18.04.03 nicht installiert.
hat jemand eine idee? Welche Rechte hier fehlen bzw welche Voraussetzungen erfüllt sein müssen?
root@1p-iobroker-ubu:/opt/iobroker# npm install iobroker.zwave2 > @serialport/bindings@2.0.8 install /opt/iobroker/node_modules/@serialport/bindings > prebuild-install --tag-prefix @serialport/bindings@ || node-gyp rebuild prebuild-install WARN install EACCES: permission denied, access '/root/.npm' gyp WARN EACCES user "*****" does not have permission to access the dev dir "/root/.cache/node-gyp/11.15.0" gyp WARN EACCES attempting to reinstall using temporary dev dir "/tmp/.node-gyp" gyp ERR! configure error gyp ERR! stack Error: EACCES: permission denied, mkdir '/opt/iobroker/node_modules/@serialport/bindings/build' gyp ERR! System Linux 4.15.0-62-generic gyp ERR! command "/usr/bin/node" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild" gyp ERR! cwd /opt/iobroker/node_modules/@serialport/bindings gyp ERR! node -v v11.15.0 gyp ERR! node-gyp -v v5.0.3 gyp ERR! not ok npm WARN optional SKIPPING OPTIONAL DEPENDENCY: osx-temperature-sensor@1.0.4 (node_modules/osx-temperature-sensor): npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for osx-temperature-sensor@1.0.4: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"}) npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! @serialport/bindings@2.0.8 install: `prebuild-install --tag-prefix @serialport/bindings@ || node-gyp rebuild` npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the @serialport/bindings@2.0.8 install script. npm ERR! This is probably not a problem with npm. There is likely additional logging output above. npm ERR! A complete log of this run can be found in: npm ERR! /root/.npm/_logs/2019-09-23T08_51_37_259Z-debug.log root@1p-iobroker-ubu:/opt/iobroker# node-gyp -v v5.0.3 root@1p-iobroker-ubu:/opt/iobroker#
Gruß Maik
-
@booehmemaik warum installierst du den von der console ???
-
@arteck weil er sich aus dem admin heraus auch nicht installieren lässt.
-
@booehmemaik glaub ich zwar jetzt nicht aber...
mal den fixer laufen lassen ???
-
@arteck hatte ich nicht, aber das hat geholfen. Danke
-
Hallo, ich habe ein paar Fragen/Anmerkungen zum aktuellen Stand.
-
Ich habe einen Philio Technology Corp PAN04-1 Double Relay Switch 2x1.5kW with Power Measurement. Der hat zwei Kanäle und einen virtuellen dritten kanal, der die beiden anderen gemeinsam schaltet. Im 'alten' zwave Adapter wurden die auch als State/switch angelegt. Im Z-Wave 2 ist nur ein State vorhanden. Kann ich das selber irgendwie 'reparieren' oder muss da ein Entwickler ran?
mein Qubino (Goap) ZMNHBDx Flush 2 Relays erscheint übrigens mit beiden Kanälen im neuen Adapter. -
Selbiger Schalter sammelt auch eine ganze Menge Informationen zum aktuellen Verbrauch, Spannung, Strom etc. (z.B. zwave.0.NODE25.METER.Instance_1:Electric-_W_1) Das ist auch nicht im neuen Adapter enthalten. Das gilt für Qubino und für Philio. Meine Fibaro Wall Plugs haben alle Attribute im neuen Adapter.
-
Im alten Adapter erscheinen die einzelnen Nodes als Device und State. Man kann sie daher auf der Ebene bereits einem Raum/Funktion zuordnen und muss das nicht für jeden State einzeln machen. Das ist praktisch, sollte aber wohl besser auf der Ebene darunter passieren (Channel?) ?
Zu 1) und 2): Ich habe bei irgendeiner Installation von zwave (alt) ein Problem mit OZW gehabt und habe ne menge rumgefrickelt, bis es tatsächlich funktioniert hat. Beim Z-Wave 2 habe ich einfach den Adapter installiert und er läuft. Ob er allerdings ein neues OZW mitbringt, oder eventuell eigene Komponenten nutzt und das installierte OZW nicht berücksichtigt weiss ich nicht genau.
-
-
Erstens: Danke fürs Feedback!
@OstfrieseUnterwegs sagte in [Neuer Adapter] Z-Wave 2 (Alpha-Test):
Der hat zwei Kanäle und einen virtuellen dritten kanal, der die beiden anderen gemeinsam schaltet. Im 'alten' zwave Adapter wurden die auch als State/switch angelegt. Im Z-Wave 2 ist nur ein State vorhanden.
Kannst du mir mal einen Screenshot von den Datenpunkten machen? Kann ich mir gerade nicht ganz vorstellen. Weiterhin interessant wäre der entsprechende Abschnitt aus der Cache-Datei
/opt/iobroker/node_modules/zwave-js/cache/<irgendwas>.json
. Dort den Teil, der hinter der Node-ID steht (oder auch gerne alles (könnte aber verdammt viel sein)).@OstfrieseUnterwegs sagte in [Neuer Adapter] Z-Wave 2 (Alpha-Test):
Informationen zum aktuellen Verbrauch, Spannung, Strom
Die Meter-Command-Klasse ist noch nicht implementiert. Kommt bald - ich habe gerade eine riesige Baustelle mit Config-Dateien (und benannten Konfigurations-Datenpunkten).
@OstfrieseUnterwegs sagte in [Neuer Adapter] Z-Wave 2 (Alpha-Test):
Im alten Adapter erscheinen die einzelnen Nodes als Device und State.
Ist geplant, da auch notwendig, um die Gerätenamen anzuzeigen.
@OstfrieseUnterwegs sagte in [Neuer Adapter] Z-Wave 2 (Alpha-Test):
Problem mit OZW gehabt und habe ne menge rumgefrickelt, bis es tatsächlich funktioniert hat. Beim Z-Wave 2 habe ich einfach den Adapter installiert und er läuft.
Und jetzt weißt du, warum ich mit diesem Mammut-Projekt angefangen habe. Mein Adapter benötigt kein OZW und muss nicht bei jedem Pups-Update neu kompilieren und linken. Die Z-Wave-Unterstützung kommt durch eine eigene Library, die komplett in JavaScript selbstgeschrieben ist.
Der Nachteil ist: Es ist verdammt viel Arbeit, bis die Unterstützung vergleichbar weit ist. -
Hier noch mehr Info:
Die obere Box ist jeweils der alte Adapter. Beim Qubino sind im neuen auch drei Kanäle. Und ich kann den Switch auch mit 'Target Value' schalten. Dabei werden alle drei 'currentValue' gesetzt. Eine gezielte Schaltung eines Kanals ist also nicht möglich.
Im JSON sind nur die beiden beschriebenen Nodes. 25 ist der Philio, 28 der Qubino
P.S. Prima Arbeit, Danke! Schreib, wenn ich noch irgendwas testen kann. Ich habe Popp Rauchmelder, einige Fibaro Multisensoren, Fibaro Wall Plugs, den Philio und den Qubino. Außerdem noch (in der Schublade) einen ZME_WALLC-S
Z-Wave Secure Wall Controller und einige Fibaro Rauchmelder. -
Welche Version vom Adapter hast du installiert?
Und welche Version gibtcd /opt/iobroker/node_modules/zwave-js cat package.json | grep version
aus?
Und ja, ich werde mich melden für Tests
Edit: Ich habe da was gefunden:
"name": "Multi Channel", "isSupported": true, "isControlled": false, "version": 3, "values": [ { "endpoint": 0, "propertyName": "interviewComplete", "value": false },
Mir scheint es als wäre beim Interview was schief gelaufen und die Multi Channel CC wurde nicht fertig interviewed. Das wird derzeit noch nicht richtig gehandelt.
Du kannst temporär ein neues Interview erzwingen:- Adapter beenden
- Für jeden unvollständigen Node den jeweiligen Cache-Abschnitt aus der Datei löschen. Also alles von
"25": {
bis zum zugehörigen}
vor"26"
. - Adapter starten
Node 28 scheint auch nicht komplett zu sein.