NEWS
Test Adapter bshb (Bosch Smart Home) v0.0.x
-
@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.
-
Hallo zusammen,
erstmal vielen Dank für die tollen Erweiterungen..
ggf könnt ihr mir helfen ich komme grade nicht weiter oder steh auf dem Schlauchich möchte grade alle open Doors nutzen und dafür die all open List ausgeben lassen im VIS bspw.
Es soll aber das Komma gegen ein Zeilenumbruch "getauscht" werden..
wenn ich es als String ausgeben lasse erhalte ich bspw nur:wenn ich es als Html mit:
{state:bshb.0.openDoorsAndWindows.all.open;n1=state.toString();n2=n1.replace(/,/g, "<br>");n2}versuche nur das:
kann mir jemand helfen irgendwie raff ich es nicht
-
@Scotty89
Ich glaube das geht nicht so ohne weiteres. Die Objekte scheinen direkt in einen String umgewandelt zu werden, so dass du keinen Zugriff mehr auf die Liste hast. Daher steht dort auch immer [object Object]. Ich kenne mich mit VIS aber auch nicht aus. Was bei mir ging ist:- Ein eigenes Objekt erstellen um das Ergebnis zu speichern. Bei mir ist es: 0_userdata.0.vis.openWindows
- Ein Skript erstellen:
const initList = getState('bshb.0.openDoorsAndWindows.all.open'); on({id: 'bshb.0.openDoorsAndWindows.all.open', change: "any"}, (obj) => { openWindows(obj.state.val); }); const openWindows = (list) => { let result = ""; list.forEach((value) => { result += value + '\n'; }); setState("0_userdata.0.vis.openWindows", result); }; openWindows(initList.val);
- In Vis einfach Text/String/Wert (oder wie es heißt) auswählen und dann folgendes einstellen:
- CSS
.wrap { white-space: pre-line; }
- CSS allgemein aktivieren und dort unter CSS Klasse folgendes eintragen: wrap
- Dann natürlich noch die ObjektID eintragen: 0_userdata.0.vis.openWindows
Das müsste auch mit dem HTML Widget gehen falls du da noch irgendwas anderes davon benötigst.
-
Guten Abend Zusammen,
bin neu in dem Thema, und wollte mein Bosch Smart Home Controller in ioBroker hinzufügen. Adapter wurde erfolgreich installiert. Paaring Knopf mehrmals gedrückt, leider erfolglos! Adapter wurde auch schon 2 mal gelöscht und neu hinzugefügt. Bekomme folgende Meldung im LOG:
%(#0f0d0d)[9948) Could not pair client. Did you press the paring button? Error details: Error: write EPROTO 139986620327744:error:14094412:SSL routines:ssl3_read_bytes:sslv3 alert bad certificate:../deps/opens
bshb.0 2020-05-28 20:23:02.428 info (9948) Start pairing. Activate pairing on Bosch Smart Home Controller by pressing button until flashing.
bshb.0 2020-05-28 20:23:02.427 info (9948) Client with identifier: ioBroker.bshb_uuidv4 was not paired yet.
bshb.0 2020-05-28 20:23:02.125 info (9948) Check if client with identifier: ioBroker.bshb_uuidv4 is already paired.
bshb.0 2020-05-28 20:23:02.107 info (9948) private key seems to be actual content. Use value from state.
bshb.0 2020-05-28 20:23:02.106 info (9948) certificate seems to be actual content. Use value from state.
bshb.0 2020-05-28 20:23:02.104 info (9948) Check if certificate is file reference or actual content
bshb.0 2020-05-28 20:23:02.103 info (9948) Client certificate found in system.certificates
bshb.0 2020-05-28 20:23:02.021 info (9948) starting. Version 0.1.10 in /opt/iobroker/node_modules/iobroker.bshb, node: v10.20.1
host.iobroker-XS35V3 2020-05-28 20:23:00.050 info instance system.adapter.openweathermap.0 started with pid 9955
host.iobroker-XS35V3 2020-05-28 20:22:59.360 info instance system.adapter.bshb.0 started with pid 9948]Wäre Klasse wenn mir jemand Helfen könnte bzw. Unterstützung anbieten würde.
Vielen Dank!
Ceddipa -
@Ceddipa
Am besten du lädst dir die logs herunter. In der ui sind die logs beschränkt in der Länge. Der folgende log ist interessant:
ssl3_read_bytes:sslv3 alert bad certificateWenn dort der code 42 steht, dann hat der controller den Request abgelehnt, da dieser keinen Client Zertifikat enthält.
Das Ganze funktioniert wie folgt:
Client (Adapter) generiert ein so genanntes Client-Zertifikat. Beim Pairing übergibt der Client dieses Zertifikat an den Controller. Der Controller hinterlegt dieses Zertifikat. Ab diesem Zeitpunkt kann der Client die private Schnittstelle des Controller benutzen. Die pairingschnitstelle ist im normalen modus auch nicht offen, sodass versuche diese aufzurufen ohne Zertifikat fehlschlagen. Der Knopf auf dem Controller muss ca. 5s gedrückt werden bis dieser anfängt zu blinken. Nur dann ist die Schnittstelle für kurze zeit offen und clients können sich anmelden.Zusätzlich kannst du den controller mal auf log level silly stellen. Dann kannst du die requests sehen. Aber da es ein ssl handshake Fehler ist müsste es das oben genannte Problem sein. Andere Möglichkeit wäre noch, wenn dein Controller ein Serverzertifikat hätte, welches nicht von dem hinterlegten bosch root ca ausgestellt wäre. Das wäre dann natürlich interessant. Kann ich mir jedoch nicht vorstellen. Aber auch da kann ich dann weiterhelfen. Schau bitte erst einmal auf das oben genannte.
-
@holomekc
vielen Dank für die Schnelle Antwort, werde ich heute Abend gleich mal ausprobieren!
Gebe auf jeden Fall, so oder so eine Rückmeldung!