NEWS
Test Adapter bshb (Bosch Smart Home) v0.0.x
-
@qara2003 Hallo Olli, danke für die Ausführliche Information. Der Monteur hat ein mb Lan "x" bestellt, das soll laut Bosch/Junkers an meine neue Heizung gehen. Ein CW/CR400 habe ich auch installiert bekommen in der Heizung.
Wenn ich das richtig verstanden habe,
- müsste ich nur noch einen "Bosch Smart Home Controller" besorgen.
- dann geht auch die EasyRemote App oder schon mit mb Lan?
Kann ich den selber an das MB Lan anschalten oder müsste das der Monteur machen (traue ich mir zu wenn ich weiß wie es grob geht).
Die Rufnummer habe ich mir notiert für weiteres
-
@holomekc Hallo, ich habe eine funktionierende Instanz des Adapter auf meinem Raspi laufen. Ich will jetzt von Raspi auf einen NUC mit Debian umziehen. Ich mache das mit Backup und Restore des Backitup Adapters. Der BSH Adapter lässt sich nach dem Restore nicht mehr starten. Ich sehe dann immer diese Fehler.
Lege ich eine neue Instanz an läuft die bis zum nächsten restart des Adapters.
Hast du dazu eine Idee was ich überprüfen könnte?
Adapter Neuinstallation habe ich auch schon ohne Erfolg getestet.Danke und Gruß Mike
-
Witzig, Ich habe gerade bei der Instanz das Logging erhöht. Der Fehler tritt nur bei Log Stufe Info auf. Bei jeder anderen Stufe ist der Fehler weg.
-
@mikerow
Hi Mike,soweit ich weiß werden die Adapter selber nicht im Backup gespeichert. Diese werden nachträglich automatisch neu installiert. Teil des Backups sind die Objekte. Normalerweise hätte ich dir jetzt geschrieben, dass du bitte einmal den Adapter mit höherem Log Level ausführst. Aber du hattest ja geschrieben, dass dies nur bei info auftritt.
Ich schaue mal, ob ich am Wochenende die Zeit finde das nachzustellen. So mit den log Meldungen komme ich nicht wirklich weiter
Ich hoffe du kannst mit einem anderen Log Level erst einmal arbeiten.
Viele Grüße
Christopher -
Hi Christopher, der Adapter läuft in allen non Info Loglevel Stufen stabil. Für mich ist es so ok so.
-
@holomekc Noch eine schnelle (dumme) Frage...
Der Adapter setzt immer den Bosch Smart Home Controller voraus, richtig?
Kann ich durch dieses Setup dann auch (endlich) alle am Gerät verfügbaren Programme nutzen, oder ist das dann trotzdem, wie in App/HomeConnect limitiert? -
@great-sun
Sorry für die extrem späte Antwort. Ja der Adapter funktioniert mit dem Bosch Smart Home Controller. Die Kommunikation ist nur lokal. Nichts über Internet. Du kannst in der Regel fast alle Funktionen der App auch im Adapter nutzen. Ich kenne HomeConnect nicht gut genug, um das zu beantworten.Was bspw. nicht geht ist einen nicht Bosch Bewegungsmelder zu nehmen und dann mit diesem bspw. die Bosch Alarmanlage auslösen. Da ist man etwas beschränkter. Man kann aber falls die normalen Funktionen nicht reichen eine "fake" Hue-Brige ins Bosch System einbinden und damit ein paar Restriktionen umgehen.
-
Btw. Die Version 0.2.1 ist in GitHub und npm verfügbar. Für Feedback wäre ich seht dankbar.
Was ist neu:- Update von libraries
- Mehr Dienste: Gesunde Raumluft, Bewegungslicht, Wasseralarm
- Und noch mehr Dinge die optisch nicht sichtbar sind aber für neuere Versionen von ioBroker dann nötig waren.
Vielen Dank für die Hilfe und noch ein schönes Wochenende.
Christopher -
Ein toller Adapter, vielen vielen Dank dafür!
Hat mir i.V.m. den Raumklimathermostaten 230V und Grafana die Visualisierungsmöglichkeit und Datenhistorie geschaffen, die dem System selber kurioserweise fehlen…
Gibt es die Möglichkeit, auch aus dem Rauchwarnmelder II einige Daten zu erhalten? Ich habe leider keine Ahnung, ob und welche Infos das Gerät überhaupt erfasst und an den Smart Home Controller übermittelt (die App selbst ist ja sehr sparsam, aber das ist bei den Raumklimathermostaten ja auch nicht anders). Batteriezustand, Verschmtzungsgrad oder einfach eine Info über die letzte Alarmierung wären im ioBroker schon auch interessant. Oder gar die Möglichkeit, eine akkustische Alarmierung anzutriggern.
-
@benefit
Vielen Dank für die netten Worte.Bezüglich Batterie wird dir das weiterhelfen:
https://github.com/holomekc/ioBroker.bshb/wiki/Value-you-may-not-see-at-firstIch habe bisher den Ansatz gefahren mehr oder minder die Werte vom Controller 1:1 auszugeben. Vorteil: weniger Aufwand, neue Werte direkt sichtbar. Nachteil: nicht immer transparent für euch. Problem ist das ich auch nicht weiß, welche Werte es alles gibt. Nicht alles ist dokumentiert. Daher dachte ich lieber so.
Beim Rauchmelder muss ich leider passen. Ich habe dieses Gerät leider nicht. Normalerweise sollte das gehen was auch in der App geht. Falls nicht einfach melden und ich kann mal schauen warum das so ist.
Alarm selber triggern geht leider nicht. Die Api erlaubt das nicht. Verrücktere Dinge kann man tun, wenn man ein simuliertes Hue Gerät mit dem Controller verbindet. Aber auch hier erlaubt Bosch nicht bspw. Einen Hue Bewegungsmelder für den Alarm zu verwenden.
-
@holomekc
Habe mir inzwischen einen Rauchwarnmelder II zugelegt – folgende Infos spuckt der Adapter aus:
Bin gespannt, das BatteryLevel irgendwann mal ausspuckt. Wird dort irgendwann ein neuer "value" auftauchen (auf den man heute schon mal in einem Javascript einen Trigger setzen könnte) oder werden in deinem Link beschriebenen Werte in den "faults" State direkt reingeschrieben?
-
@benefit
Hi. Klingt gut ich hoffe du kommst an alle Werte die du brauchst. Die Fehler werden in den faults landen. Wie bei GitHub zu sehen nur ohne entries dazwischen. Also bspw. faults[index].type === „LOW_BATTERY“ könnte auftauchen. Ich wollte nicht das Werte einfach so auftauchen, aber ich weiß auch nicht wo überall Fehler auftauchen können. Daher so ein „Rundumschlag“.Im GitHub wiki bei Yahka -> WindowContact gibt es ein Beispiel wie man das verwenden kann. Ansonsten musst du mal schauen wie es aussieht wenn die Battery dann mal leer wird. Ich habe es gerade bei einem Thermostat im Schlafzimmer. Da ist es noch so wie auf GitHub beschrieben.
Das ist so eine Stelle wo ich es theoretisch viel einfacher für euch machen könnte. Aber ich habe keine Infos darüber welche Werte wo wie auftauchen können. War jedoch schon am überlegen einfach beides anzubieten. Wäre aber ein bissle Aufwand und sicher nicht vollständig.
-
Vielleicht kann es jemand brauchen: Hier ein kleines Javascript, mit dem man die Solltemperaturen der Raumthermostate (Achtung: Nur getestet mit den Raumthermostaten Fußbodenheizung 230V Generation I) in eigene Objekte schreiben kann. Damit lässt sich z.B. neben dem Ist-Wert auch der Soll-Wert in ein Diagramm zeichnen.
schedule('*/5 * * * *', roomSetpoints); function roomSetpoints() { // Define rooms with their specific data sources and targets var home = { "rooms": [ { "source": "bshb.0.roomClimateControl_hz_1.RoomClimateControl", "target": "0_userdata.0.haus.arbeitszimmer" }, { "source": "bshb.0.roomClimateControl_hz_2.RoomClimateControl", "target": "0_userdata.0.haus.bad1" }, { "source": "bshb.0.roomClimateControl_hz_3.RoomClimateControl", "target": "0_userdata.0.haus.bad2" }, { "source": "bshb.0.roomClimateControl_hz_4.RoomClimateControl", "target": "0_userdata.0.haus.kind1" }, { "source": "bshb.0.roomClimateControl_hz_5.RoomClimateControl", "target": "0_userdata.0.haus.kind2" }, { "source": "bshb.0.roomClimateControl_hz_6.RoomClimateControl", "target": "0_userdata.0.haus.schlafzimmer" }, { "source": "bshb.0.roomClimateControl_hz_7.RoomClimateControl", "target": "0_userdata.0.haus.wohnzimmer" }, ] }; // Weekdays as lookup const weekday = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]; const d = new Date(); let day = weekday[d.getDay()].toUpperCase(); // Minutes of current day for matching last valid switchPoint const now = new Date(); let currentMinutesOfDay = now.getHours()*60 + now.getMinutes(); // Loop through all rooms home.rooms.forEach((room) =>{ let t_setpoint = null; // Get all values from source var schedule = getState(room.source + ".schedule").val; var t_comfort = getState(room.source + ".setpointTemperatureForLevelComfort").val; var t_eco = getState(room.source + ".setpointTemperatureForLevelEco").val; var t_manual = getState(room.source + ".setpointTemperature").val; var controlMode = getState(room.source + ".roomControlMode").val; var operationMode = getState(room.source + ".operationMode").val; // If controlMode is not HEATING or COOLING, set t_setpoint = null if (controlMode == "OFF") { t_setpoint = null; } else { // If operationMode is not AUTOMATIC, directly use manual setpoint without looping through schedule if (operationMode == "MANUAL") { t_setpoint = t_manual; } else { // Otherwise, loop through all daily profiles in schedule-JSON schedule.profiles.forEach((item) => { if (item.day == day) { // Loop through all switchPoints of current day until last valid switchPoint is found item.switchPoints.forEach((point) => { if (currentMinutesOfDay >= point.startTimeMinutes) { if (point.value.temperatureLevel == "ECO") { t_setpoint = t_eco; } if (point.value.temperatureLevel == "COMFORT") { t_setpoint = t_comfort; } if (t_setpoint != t_manual) { t_setpoint = t_manual; } } }); } }); } } // Write setpoint temperature to target let StateName = room.target + ".temperatur_sollwert"; if(!existsState(StateName)) { createState(StateName, t_setpoint); }; setState(StateName, t_setpoint); }); }
In der Variable home.rooms müssen nur die RoomClimateControl-Pfade der gewünschen Thermostate/Räume im bshb-Adapter angegeben werden (= source). Außerdem die gewünschten Zielordner zu den Räumen/Thermostaten, in denen dann ein Objekt "temperatur_sollwert" erzeugt und fünfminütlich aktualisiert wird (= target).
Ob das Script mit anderen Bosch Smart Home Heizkörper- und Fußbodenheizungsthermostaten auch klappt, weiß ich leider nicht.
Verbesserungen werden gerne genommen!
-
Mal ne blöde Frage, wie werden denn die Datenpunkte aktualisiert?
Ist das ein fester Abfrageintervall oder kommt das per "Push" vom Controller?
Ich benutze den Adapter heatingcontrol und habe das Problem das die Daten der IST Temperatur der Bosch Thermostate teilweise über Stunden nicht aktualisiert werden.
Also im bshb werden die Daten nicht aktualisiert was irgendwie nicht sein kann weil sich die Temperatur doch regelmäßig mal ändert.bshb.0.roomClimateControl_hz_6.TemperatureLevel.temperature
bshb.0.hdm:HomeMaticIP:3014F711A000005BB85E0EBA.TemperatureLevel.temperature
Ich bin mir auch nicht sicher welcher der DP der richtige wäre. Aber beide werden unregelmäßig aktualisiert.
-
@firebowl
Hi. Es gibt keine blöden FragenÄnderungen werden per Push vom Controller an den Adapter geschickt. Alle push Nachrichten sind in dem Objekt updates zu sehen. Um zu prüfen, ob bei dir mit dem Updates alles stimmt kannst du einfach mal in dem Controller Objekt reinschauen. Also der Ordner mit der mac-Adresse. Sollte ganz oben stehen mit xx-xx-xx-xx-xx-xx. Dort dann remote access öffnen und den state beobachten. Dann in der Smartphone App einfach diese Einstellung ändern und es sollte sich nahezu sofort im Adapter auch ändern.
Ansonsten könnte es noch ein Bug im Adapter sein. Ich kann mal einen Temperaturwert aufnehmen und schauen, ob er sich ändert.
-
@holomekc Danke für die schnelle Antwort. Glaub ich hab mich missverständlich ausgedrückt. Änderungen werden sofort übernommen. Was scheinbar (teilweise) verzögert ankommt sind Temperaturwerte von den Thermostaten über den Controller zum ioBroker.
Als Beispiel:
Laut dem Datenpunkt wurde der Wert zuletzt vor einer Stunde aktualisiert bzw. geändert. Bin mir aber sehr sicher das sich die Temperatur in der letzten Stunde mal geändert hat.
-
@firebowl
Sieht für mich nicht so aus:
Es scheint aber nicht wirklich regelmäßig zu sein. Ich hab 3 Thermostate angeschlossen. 1 hat sich gar nicht gemeldet bisher. Die anderen beiden schon. Den gelben Wert hatte ich mal auf Boost gestellt. Daher vielleicht mehr Punkte. Ich weiß nicht. Ich kann das aber auch nicht wirklich beeinflussen. Theoretisch könnte ich etwas basteln mit dem man ein Abholen der Daten triggern kann. Obwohl das eigentlich nicht nötig sein sollte.Edit: Ich kann mir das noch einmal am Wochenende genauer anschauen. Vielleicht übersehe ich was.
-
@holomekc Wär cool wenn Du dir das mal anschauen würdest. Ist aber nicht mega dringend. Die andere Baustelle die ich momentan habe ist viel schlimmer. Dafür brauch ich zwar die Werte aber egal ob die aktuell sind oder nicht, mit ihnen wird vom heatingcontrol Adapter der Offset falsch berechnet und deshalb wird es hier brühwarm.
-
Seit einigen Tagen scheint die Verbindung zu den Bosch-Eyes-Kameras bei mir nicht mehr zu funktionieren. Zustände werden nicht aktualisiert, wenn ich einen Zustand im Adapter ändere, z.B. Licht auf ON, kommt die Fehlermeldung "BshbError: call to BSHC failed with HTTP status=503". Das Licht wird nicht eingeschaltet.
Die Verbindung und Steuerung einer Hue-Lampe über den BSHB funktioniert aber einwandfrei.
Die Instanz ist grün und ein Neustart produziert im Debug-Mode keine Warnungen oder Fehlermeldungen.
Vermutlich ist das Problem bei einem Firmware-Update des Smart-Home-Controllers entstanden. Jetzt läuft die Firmware 10.11.2707-27846. Bin aber nicht sicher, ob es damit zusammenhängt, weil ich das Problem erst nach einigen Tagen bemerkt habe. -
Problem gelöst. Nach dem Firmware-Update muss man die Bosch-ID mit den Kameras verknüpfen. Das geht in der App des Smart Home Controllers über "Mehr -> Partner -> Bosch Kameras".
Sorry, erst jetzt kapiert.
Gruß, Jürgen