NEWS
Test Adapter bshb (Bosch Smart Home) v0.0.x
-
@stenmic
So müsste das gehen. Die debug Ausgabe einfach mit dem ersetzen was du machen möchtest.Gibt es eine Art Export-Funktion für Blockly? Habe jetzt nur ein Bild angehängt.
Edit: Hier der Code. Danke @BigTom91
<xml xmlns="http://www.w3.org/1999/xhtml"> <variables> <variable type="" id="TC17y~Bap=Mh]2X9@+AU">i</variable> <variable type="" id="WOc#:AXA!]^aHBHvdO`F">value</variable> </variables> <block type="on_ext" id="~Fhy=aEjfMss)[[{26.$" x="-13" y="13"> <mutation items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="%C-WnuL/4k{pCBNjt+f0"> <field name="oid">bshb.0.hdm:HomeMaticIP:3014F711A0000055385A3086.BatteryLevel.faults</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="[{=tDm#$n?XHp{yw~Nsu"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_null" id="(kZ;%]NWf9O56DOe^WfE"></block> </value> <statement name="ELSE"> <block type="controls_forEach" id="NX|GK?ic#Qwa$Wy;y7l}"> <field name="VAR" id="TC17y~Bap=Mh]2X9@+AU" variabletype="">i</field> <value name="LIST"> <block type="variables_get" id="LmNhutHPi.d6hO!dF5m?"> <field name="VAR" id="WOc#:AXA!]^aHBHvdO`F" variabletype="">value</field> </block> </value> <statement name="DO"> <block type="controls_if" id="{~Ib{bo=5%;Iz0ta*5,%"> <value name="IF0"> <block type="logic_compare" id="4V*MB6VJ]B)X.jSejFo["> <field name="OP">EQ</field> <value name="A"> <block type="get_attr" id="HC#*QCTh+o43iMbyb%e9"> <value name="PATH"> <shadow type="text" id="M_=3AWle0*%J;`w:EXOR"> <field name="TEXT">type</field> </shadow> </value> <value name="OBJECT"> <block type="variables_get" id="0gO6k6n/Pd89s5hVaR1p"> <field name="VAR" id="TC17y~Bap=Mh]2X9@+AU" variabletype="">i</field> </block> </value> </block> </value> <value name="B"> <block type="text" id=")i|.K_`dvpct!d;E3vO;"> <field name="TEXT">LOW_BATTERY</field> </block> </value> </block> </value> <statement name="DO0"> <block type="debug" id="At)^=VxGO%)7y8s8FMgZ"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="Y9*5a@)a4M=r,_(D(dKR"> <field name="TEXT">Mache was du möchtest</field> </shadow> </value> </block> </statement> </block> </statement> </block> </statement> </block> </statement> </block> </xml>
Edit2: Ich bin mir nicht sicher, ob ich das richtig aufgebaut habe. Ist das erste mal das ich Blockly verwende. Aber ich hoffe die Idee ist klar. Mir ist unklar wie der Wert vom Objekt in die Variable value kommt und ob die "null" Prüfung überhaupt funktioniert. Sollte aber auch nicht vorkommen default ist immer eine leere Liste [].
-
@holomekc oben rechts das linke Symbol "Blöcke exportieren", dann kannst du den Code hier noch posten.
-
@holomekc
danke für deinen Vorschlag, aber ich habe das jetzt so gelöst.Leider aktualisiert der Adapter den Status nicht automatisch nach dem Austausch der Batterien.
Auch nach einer Stunde nicht. In der Bosch-App wird der Wechsel gleich bestätigt.Starte ich den Adapter neu, passt der Wert.
Gibt es für diesen Datenpunkt ein zeitliches Aktualisierungsintervall?
-
Kann evtl. jemand in seine Glaskugel schauen und mir sagen, warum mir für den Adapter kein Update angezeigt wird?
Bin noch auf 0.1.4 -
@stenmic
Hi. Nein es gibt eine Schnittstelle über die der Controller den Adapter informiert ohne das jeder Wert einzeln erneut abgerufen werden muss. Ich schaue mal, ob ich einen Fehler forcieren kann und welche Nachrichten verschickt werden. Vielleicht habe ich etwas übersehen und der Adapter versteht die Nachricht nicht.
Falls du die alten Batterien noch hast würde es auch helfen, wenn du den Adapter auf debug stellst, dann die Batterien austauschst und mir die Logs schicken würdest.@BigTom91
Hi. 0.1.5 und 0.1.6 sind bisher nur auf github. Ich muss das noch freigeben sozusagen. Ich schaue noch nach dem Problem oben und dann mache ich das asap. -
@stenmic
Ich kann das mit leerer Batterie leider nicht simulieren. Ich habe die Batterien einfach rausgenommen und dann wieder eingesetzt. Die Fehlermeldung ist dann zwar nicht am Gerät selber, sondern am RoomClimateControl aber ich bin davon ausgegangen das dieses Verhalten übertragbar ist:Gerät nicht verfügbar. Hier stehen faults am Ende:
{"path":"/devices/roomClimateControl_hz_2/services/RoomClimateControl","operations":["incrementSetpointTemperature","decrementSetpointTemperature"],"@type":"DeviceServiceData","id":"RoomClimateControl","state":{"schedule":{"profiles":[{"switchPoints":[{"startTimeMinutes":0,"value":..."supportsBoostMode":true},"deviceId":"roomClimateControl_hz_2", "faults":{"entries":[{"source":{"rootDeviceId":"64-da-a0-02-49-0d","deviceServiceId":"NONE","deviceId":"hdm:HomeMaticIP:3014F711A0000055385A4071"},"type":"DEVICE_UNAVAILABLE","category":"WARNING"}]}}
Gerät wieder verfügbar. Hier gibt es keine faults am Ende:
{"path":"/devices/roomClimateControl_hz_2/services/RoomClimateControl","operations":["incrementSetpointTemperature","decrementSetpointTemperature"],"@type":"DeviceServiceData","id":"RoomClimateControl","state":{"schedule":{"profiles":[{"switchPoints":[{"startTimeMinutes":0,"value":..."supportsBoostMode":true},"deviceId":"roomClimateControl_hz_2"}
Der Adapter schaut bei jedem dieser Updates erst einmal nach den tatsächlichen Daten. Also hier bspw. ob sich Werte wie supportsBoostMode verändert haben und dann schaut er noch, ob faults existiert mit Einträgen. Wenn nicht werden die faults auf eine Leere Liste gesetzt.
-
@holomekc
hier der log für leere Batterien :{"path":"/devices/hdm:HomeMaticIP:3014F711A0000056D85A7FAE/services/BatteryLevel","@type":"DeviceServiceData","id":"BatteryLevel","deviceId":"hdm:HomeMaticIP:3014F711A0000056D85A7FAE","faults":{"entries":[{"type":"LOW_BATTERY","category":"WARNING"}]}}
volle Batterien:
{"path":"/devices/hdm:HomeMaticIP:3014F711A0000056D85A7FAE/services/BatteryLevel","@type":"DeviceServiceData","id":"BatteryLevel","deviceId":"hdm:HomeMaticIP:3014F711A0000056D85A7FAE"}
das habe ich auch noch gefunden:
{"sourceId":"hdm:HomeMaticIP:3014F711A0000056D85A7FAE","sourceType":"DEVICE","@type":"message","flags":["STATUS","STICKY"],"messageCode":{"name":"BATTERY_LOW","category":"INFO"},"arguments":{"deviceModel":"TRV"},"id":"a0c7a3bb-28b2-4598-b26e-8e7def91f912","timestamp":1585996409174}
Diesmal hat sich der Datenpunkt "BatteryLevel.faults" weder bei leerer noch bei voller Batterie aktualisiert.
-
@stenmic
Ah vielen Dank! Ich denke ich weiß was das Problem ist. Ich schaue gleich. Aber vermutlich weil ja BatteryLevel leer ist. Also keinen weiteren State hat. -
@stenmic
Hallo im Github ist jetzt 0.1.7 mit dem fix dazu. Wenn du bereit wärst das noch einmal damit zu testen wäre das natürlich toll. Müsstest dann den Adapter halt über Github installieren.Edit: Die letzte Nachricht die du gefunden hast sind übrigens Messages. Die kann man auch auslesen.
-
@holomekc
du bist wirklich pfeilschnell!Mit 0.1.7 aktualisiert sich der DP "BatteryLevel.faults" sofort bei schwacher und bei neuer Batterie.
(Der DP "RoomClimateControl.faults" verhält sich analog)Vielen Dank
-
@stenmic
Super Danke für die Hilfe! Habe jetzt den PullRequest für 0.1.7 im stable repo gestellt. Dann sollte die Version auch bald in ioBroker selber angeboten werden. -
Hallo zusammen,
auch von mir ein großes DANKE und Lob für diesen Adapter!Mich würde mal interessieren, ob jemand schon etwas mit den Bosch Bewegungsmeldern gemacht hat?
Prinzipiel will ich einfach nur eine erkannte Bewegung über YAHKA nach Homekit weiterleiten. Leider ist der einzige state aber ein timestamp. Es gibt nicht (wie z.B. bei hue) einen Status "true" oder "false" wenn ausgelöst.
Hat da vielleicht jemand ne Idee, wie sich sowas umsetzen ließe? -
@fero87
Hi. Ich hatte bei Bosch mal nachgefragt. Der Bewegungsmelder schläft nach einer Erkennung für 5 min. Dabei wird der Zeitstempel aktualisiert. Auf 1min lässt sich das glaube ich nur drücken, wenn der Bewegungsmelder mit einem Licht verknüpft ist. Glaube so war das.Selber einstellen kannst du es sonst nicht direkt. Zumindest wüsste ich nicht wie. Ist wohl eine Maßnahme um die Batterien zu schonen. Steht auch so in der App.
Somit könnte man nur eine Logik basteln die auf Änderungen des Zeitstempel prüft. Für yahka müsstest du dann die Bewegung nach einer Zeit <5min zurücksetzen.
Ich kann nachher mal schauen. Im github wiki sind bereits ein paar yahka Beispiele.
-
So sollte es gehen:
https://github.com/holomekc/ioBroker.bshb/wiki/Yahka-MotionSensorWenn etwas nicht passt oder nicht klar ist einfach wieder melden.
-
@holomekc
wow, vielen Dank Dir! Ich setze mich heute Abend gleich dran und probiere das aus -
@holomekc
hat etwas gedauert mit dem Test. Aber funktioniert einwandfrei
Dazu muss ich sagen, dass ich absoluter newbie bin in javascript und das jetzt mein erster Anwendungsfall war. Aber selbst ich habs hinbekommen.
Vielen Dank für Deine Hilfe, echt Top!! -
@fero87
Super! Klasse das es geklappt hat.Schöne Ostern euch allen!
-
@Jens-Bräunel wie hast du es hinbekommen? Ich bekomme einfach keine Verbindung.
host.iobroker 2020-04-14 21:14:22.799 error Caught by controller[1]: } host.iobroker 2020-04-14 21:14:22.798 error Caught by controller[1]: name: 'BshbError' host.iobroker 2020-04-14 21:14:22.797 error Caught by controller[1]: }, host.iobroker 2020-04-14 21:14:22.797 error Caught by controller[1]: syscall: 'write' host.iobroker 2020-04-14 21:14:22.796 error Caught by controller[1]: code: 'EPROTO', host.iobroker 2020-04-14 21:14:22.796 error Caught by controller[1]: errno: -71, host.iobroker 2020-04-14 21:14:22.795 error Caught by controller[1]: at WriteWrap.onWriteComplete [as oncomplete] (internal/stream_base_commons.js:92:16) { host.iobroker 2020-04-14 21:14:22.794 error Caught by controller[1]: host.iobroker 2020-04-14 21:14:22.794 error Caught by controller[1]: cause: Error: write EPROTO 1995491792:error:14094416:SSL routines:ssl3_read_bytes:sslv3 alert certificate unknown:../deps/openssl/openssl/ssl/record/rec_layer_s3.c:1550:SSL host.iobroker 2020-04-14 21:14:22.793 error Caught by controller[1]: errorType: 0, host.iobroker 2020-04-14 21:14:22.792 error Caught by controller[1]: at TLSSocket.Socket._destroy (net.js:679:5) { host.iobroker 2020-04-14 21:14:22.792 error Caught by controller[1]: at internal/streams/destroy.js:60:7 host.iobroker 2020-04-14 21:14:22.791 error Caught by controller[1]: at onwrite (_stream_writable.js:427:7) host.iobroker 2020-04-14 21:14:22.790 error Caught by controller[1]: at onwriteError (_stream_writable.js:406:3) host.iobroker 2020-04-14 21:14:22.790 error Caught by controller[1]: at errorOrDestroy (internal/streams/destroy.js:128:12) host.iobroker 2020-04-14 21:14:22.789 error Caught by controller[1]: at TLSSocket.emit (events.js:315:20) host.iobroker 2020-04-14 21:14:22.788 error Caught by controller[1]: at TLSSocket.socketErrorListener (_http_client.js:432:9) host.iobroker 2020-04-14 21:14:22.788 error Caught by controller[1]: at ClientRequest.emit (events.js:315:20) host.iobroker 2020-04-14 21:14:22.787 error Caught by controller[1]: at ClientRequest.<anonymous> (/opt/iobroker/node_modules/bosch-smart-home-bridge/dist/api/abstract-bshc-client.js:137:23) host.iobroker 2020-04-14 21:14:22.787 error Caught by controller[1]: at BshcClient.AbstractBshcClient.handleError (/opt/iobroker/node_modules/bosch-smart-home-bridge/dist/api/abstract-bshc-client.js:153:32) host.iobroker 2020-04-14 21:14:22.786 error Caught by controller[1]: Error [BshbError]: error during call to BSHC: host.iobroker 2020-04-14 21:14:22.785 error Caught by controller[0]: } host.iobroker 2020-04-14 21:14:22.785 error Caught by controller[0]: name: 'BshbError' host.iobroker 2020-04-14 21:14:22.783 error Caught by controller[0]: }, host.iobroker 2020-04-14 21:14:22.783 error Caught by controller[0]: syscall: 'write' host.iobroker 2020-04-14 21:14:22.782 error Caught by controller[0]: code: 'EPROTO', host.iobroker 2020-04-14 21:14:22.781 error Caught by controller[0]: errno: -71, host.iobroker 2020-04-14 21:14:22.781 error Caught by controller[0]: at WriteWrap.onWriteComplete [as oncomplete] (internal/stream_base_commons.js:92:16) { host.iobroker 2020-04-14 21:14:22.780 error Caught by controller[0]: host.iobroker 2020-04-14 21:14:22.779 error Caught by controller[0]: cause: Error: write EPROTO 1995491792:error:14094416:SSL routines:ssl3_read_bytes:sslv3 alert certificate unknown:../deps/openssl/openssl/ssl/record/rec_layer_s3.c:1550:SSL host.iobroker 2020-04-14 21:14:22.779 error Caught by controller[0]: errorType: 0, host.iobroker 2020-04-14 21:14:22.778 error Caught by controller[0]: at TLSSocket.Socket._destroy (net.js:679:5) { host.iobroker 2020-04-14 21:14:22.777 error Caught by controller[0]: at internal/streams/destroy.js:60:7 host.iobroker 2020-04-14 21:14:22.776 error Caught by controller[0]: at onwrite (_stream_writable.js:427:7) host.iobroker 2020-04-14 21:14:22.775 error Caught by controller[0]: at onwriteError (_stream_writable.js:406:3) host.iobroker 2020-04-14 21:14:22.774 error Caught by controller[0]: at errorOrDestroy (internal/streams/destroy.js:128:12) host.iobroker 2020-04-14 21:14:22.773 error Caught by controller[0]: at TLSSocket.emit (events.js:315:20) host.iobroker 2020-04-14 21:14:22.772 error Caught by controller[0]: at TLSSocket.socketErrorListener (_http_client.js:432:9) host.iobroker 2020-04-14 21:14:22.772 error Caught by controller[0]: at ClientRequest.emit (events.js:315:20) host.iobroker 2020-04-14 21:14:22.771 error Caught by controller[0]: at ClientRequest.<anonymous> (/opt/iobroker/node_modules/bosch-smart-home-bridge/dist/api/abstract-bshc-client.js:137:23) host.iobroker 2020-04-14 21:14:22.770 error Caught by controller[0]: at BshcClient.AbstractBshcClient.handleError (/opt/iobroker/node_modules/bosch-smart-home-bridge/dist/api/abstract-bshc-client.js:153:32) host.iobroker 2020-04-14 21:14:22.769 error Caught by controller[0]: Error [BshbError]: error during call to BSHC: host.iobroker 2020-04-14 21:14:22.743 info Restart adapter system.adapter.km200.0 because enabled host.iobroker 2020-04-14 21:14:22.742 error instance system.adapter.km200.0 terminated with code 1 (JS_CONTROLLER_STOPPED) host.iobroker 2020-04-14 21:14:22.741 error Caught by controller[0]: at Module.load (internal/modules/cjs/loader.js:996:32) host.iobroker 2020-04-14 21:14:22.740 error Caught by controller[0]: at Object.Module._extensions..js (internal/modules/cjs/loader.js:1167:10) host.iobroker 2020-04-14 21:14:22.740 error Caught by controller[0]: at Module._compile (internal/modules/cjs/loader.js:1147:30) host.iobroker 2020-04-14 21:14:22.739 error Caught by controller[0]: at Object.<anonymous> (/opt/iobroker/node_modules/mcrypt/index.js:3:37) host.iobroker 2020-04-14 21:14:22.738 error Caught by controller[0]: at bindings (/opt/iobroker/node_modules/bindings/bindings.js:81:44) host.iobroker 2020-04-14 21:14:22.738 error Caught by controller[0]: at require (internal/modules/cjs/helpers.js:72:18) host.iobroker 2020-04-14 21:14:22.737 error Caught by controller[0]: at Module.require (internal/modules/cjs/loader.js:1036:19) host.iobroker 2020-04-14 21:14:22.737 error Caught by controller[0]: at Function.Module._load (internal/modules/cjs/loader.js:896:14) host.iobroker 2020-04-14 21:14:22.736 error Caught by controller[0]: at Module.load (internal/modules/cjs/loader.js:996:32) host.iobroker 2020-04-14 21:14:22.735 error Caught by controller[0]: at Object.Module._extensions..node (internal/modules/cjs/loader.js:1197:18) host.iobroker 2020-04-14 21:14:22.734 error Caught by controller[0]: the module (for instance, using `npm rebuild` or `npm install`). host.iobroker 2020-04-14 21:14:22.733 error Caught by controller[0]: NODE_MODULE_VERSION 79. Please try re-compiling or re-installing host.iobroker 2020-04-14 21:14:22.733 error Caught by controller[0]: NODE_MODULE_VERSION 64. This version of Node.js requires host.iobroker 2020-04-14 21:14:22.732 error Caught by controller[0]: was compiled against a different Node.js version using host.iobroker 2020-04-14 21:14:22.732 error Caught by controller[0]: Error: The module '/opt/iobroker/node_modules/mcrypt/build/Release/mcrypt.node' host.iobroker 2020-04-14 21:14:22.731 error Caught by controller[0]: ^ host.iobroker 2020-04-14 21:14:22.730 error Caught by controller[0]: throw e host.iobroker 2020-04-14 21:14:22.729 error Caught by controller[0]: /opt/iobroker/node_modules/bindings/bindings.js:88 bshb.0 2020-04-14 21:14:22.176 info (1537) Terminated (NO_ERROR): Without reason bshb.0 2020-04-14 21:14:22.171 info (1537) terminating bshb.0 2020-04-14 21:14:22.157 error (1537) BshbError: error during call to BSHC: at BshcClient.AbstractBshcClient.handleError (/opt/iobroker/node_modules/bosch-smart-home-bridge/dist/api/abstract-bshc-client.js:153:32) at Clien bshb.0 2020-04-14 21:14:22.155 error (1537) uncaught exception: error during call to BSHC: bshb.0 2020-04-14 21:14:22.129 info (1537) cleaned everything up... bshb.0 2020-04-14 21:14:22.118 error (1537) BshbError: error during call to BSHC: at BshcClient.AbstractBshcClient.handleError (/opt/iobroker/node_modules/bosch-smart-home-bridge/dist/api/abstract-bshc-client.js:153:32) at Clien bshb.0 2020-04-14 21:14:22.115 error (1537) uncaught exception: error during call to BSHC:
-
@Adel
Hi. Hinter dem ssl Fehler folgt normalerweise noch ein Fehlercode. Ich vermute du hast es aus der Oberfläche von iobroker kopiert. Am besten vorher auf log herunterladen klicken. Dann sind die logs vollständig.Meine erste Vermutung ist, dass das pairing nicht funktioniert hat. Vielleicht schaue ich noch einmal, ob ich die Fehlermeldungen verbessern kann.
Am leichtesten wäre es für mich, wenn du:
- logs löschst
- adapter auf silly stellst
- adapter startest, falls er das nicht schon gemacht hat. Es ist in dem Fall egal, ob er rot bleibt
- kurz wartest
- logs herunterlädst und mir via email schickst
Meist ist es ein Tippfehler beim Passwort gewesen.
-
@holomekc
Version 0.1.9 ist in github. Wäre toll wenn einige diese testen könnten.Es gab ein Problem bei der Szenarien Steuerung.