@mickym Danke, so geht es. Auf die Idee hätte ich kommen können....
NEWS
Latest posts made by mendikant
-
RE: Gelöst: Sein oder nicht sein, öhm Json oder nicht ;-)
-
RE: Gelöst: Sein oder nicht sein, öhm Json oder nicht ;-)
wie geschrieben: Ohne den Stringify meckert die Api:
viessmannapi.0 2023-09-28 13:23:32.950 info Please use a valid JSON: {"slope": x, "shift": y} viessmannapi.0 2023-09-28 13:23:32.949 error SyntaxError: Unexpected token o in JSON at position 1
Mit Stringify meckert der JS Adapter, aber die API nimmt die Werte an.
javascript.02023-09-28 13:25:40.970 warn You are assigning a string to the state "viessmannapi.0.XXXXXX.0.features.heating.circuits.0.heating.curve.commands.setCurve.setValue" which expects a object. Please fix your code to use a object or change the state type to string. This warning might become an error in future versions.
Hier nochmal die Eigenschaften des Datenpunktes.
{ "type": "state", "common": { "name": "Einstellungen sind hier änderbar / You can change the settings here", "role": "value", "type": "object", "write": true, "read": true, "param": [ { "param": "slope", "type": "number", "min": 0.2, "max": 3.5 }, { "param": "shift", "type": "number", "min": -13, "max": 40 } ] }, "native": {}, "from": "system.adapter.viessmannapi.0", "user": "system.user.admin", "ts": XXXXXXXX, "_id": "viessmannapi.0.XXXXXXX.0.features.heating.circuits.0.heating.curve.commands.setCurve.setValue", "acl": { "object": 1636, "state": 1636, "file": 1632, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } }
Also Issue beim JS Adapter aufmachen?
VG
Mendikant -
Gelöst: Sein oder nicht sein, öhm Json oder nicht ;-)
Ich möchte einen Datenpunkt für meine Viessmann Heizung setzen. Die Viessmann Api erwartet an der Stelle ein JSON-Object.
Nennt man das so?Im Folgenden mein Testaufbau. die var Temp_Diff ziehe ich mir natürlich produktiv aus einer Rechnung.
var Temp_Diff = 2 const Kurve = {"slope":0.4,"shift":Temp_Diff}; const KKurve = JSON.stringify(Kurve); setState("viessmannapi.0.XXXXXX.0.features.heating.circuits.0.heating.curve.commands.setCurve.setValue",KKurve);
Wenn ich "Kurve" in den Setstate schreibe, bekomme ich von der Api zurück, dass ich bitte einen json setzen soll.
Bei KKurve meckert die API nicht, offensichtlich ist es also ein JSON geworden.ABER: Das Logfile vom Iobroker Javascript sagt mir dann:
You are assigning a string to the state "viessmannapi.0.XXXXXXX.0.features.heating.circuits.0.heating.curve.commands.setCurve.setValue" which expects a object. Please fix your code to use a object or change the state type to string. This warning might become an error in future versions.Ist das jetzt nen String oder nicht? Muss ich da für die Zukunft was beachten?
Danke und Gruß
Mendikant
-
RE: Lampe an der Haustüre und Abwesenheit
@mickym Danke, Du hast es auf das reduziert, was es ist: Ein Logikproblem...
Und ich habe jetzt mehrmals lesen müssen, bis ich es verstanden habe: Der Trigger ist meine Ankunft zuhause.
Das ist auch deswegen sinnvoll, weil ich vielleicht auch Dinge triggern will, wenn ich tagsüber ankomme...
Das lasse ich mal so sacken, und starte mein konzeptionelles Denken nochmal neu... -
RE: Lampe an der Haustüre und Abwesenheit
@mickym Das XOR Ist allerdings sehr überzeugend...
-
Lampe an der Haustüre und Abwesenheit
Hallo zusammen!
Meine Javascript Kenntnisse wachsen, bisher reichten mir if Verzweigungen, eigene Datenpunkte und mal nen setStatedelayed.
Aber jetzt komme ich mit meiner Erfahrung an meine Grenzen, daher frage ich hier mal nach.
In der aktuellen Version des Skriptes sind keine Syntaxfehler enthalten, es läuft so durch.Ich will bei Dunkelwerden die Lampe an der Haustüre einschalten, falls einer von zwei Bewohnern nicht zuhause ist.
Das Skript soll dann in eine While Schleife gehen und die Lampe wieder abschalten, wenn die Bewohner wieder zuhause sind:
Meine "Probleme":- Ist eine While Schleife hier sinnvoll, auf den ersten Blick finde ich es charmant, weiß aber nicht, ob die Kombination mit dem on id sinnvoll ist
-Ich musste die Dockingstation meiner Frau in FB-Presence aufnehmen, um das Licht in Ihrem Arbeitszimmer zu steuern. Ich muss also noch den Fall abfangen: ich bin weg, sie sitzt im Arbeitszimmer und die Dockingstation ist Präsent (aber das ist machbar) - Was passiert, wenn wir beide gleichzeitig nachhause kommen
- Was passiert wenn wir beide unterwegs sind und unterschiedlich nachhause kommen..
die letzten Beiden Fälle könnte ich auch mit if und on id abfangen.. aber ob das funktioniert?
code_text //Bei Sonnenuntergang angehen, wenn eine Person außer Haus schedule({astro: "sunset", shift: -20 }, function () { if(getState('fb-checkpresence.0.familyMembers.Familie.absentCount') > 1) { //Lampe an der Haustüre wird eingeschaltet setState('zigbee.0.7cb03eaa0a0381c2.state', true); }; do { //Kerstin Kommt nach Hause on:({id: 'fb-checkpresence.0.familyMembers.Familie.Kerstin.presence', change: "ne"}, function (obj) { //setState flurlicht oben an //Lampe an der Haustüre aus setStateDelayed('zigbee.0.7cb03eaa0a0381c2.state', false, 600000); } ); //Christian Kommt nach Hause on:({id: 'fb-checkpresence.0.familyMembers.Familie.Christian.presence', change: "ne"}, function (obj) { //setState flurlicht oben an //Lampe an der Haustüre aus setStateDelayed('zigbee.0.7cb03eaa0a0381c2.state', false,600000); } ); setTimeout(300000); } while (getState('zigbee.0.7cb03eaa0a0381c2.state') == true); });
Herzlichen Dank für Euer Input
Christian
- Ist eine While Schleife hier sinnvoll, auf den ersten Blick finde ich es charmant, weiß aber nicht, ob die Kombination mit dem on id sinnvoll ist
-
RE: MQTT/zigbee2mqtt deconz - Ich stehe mir selbst im Weg
@mickym Die Artikelreihe ist wirklich super. Im zweiten Beispiel kam dann ja direkt der timestamp und aus dem ersten mit dem iobroker in war mir klar, dass ich jetzt iobroker out brauche. Damit ist meine Homeoffice Beleuchtung morgens um 5:45 erfolgreich in nodered umgezogen...
-
RE: MQTT/zigbee2mqtt deconz - Ich stehe mir selbst im Weg
@mickym Jetzt habe ich den Tab seit über 10 Tagen offen, damit ich dran denke, mal Node.js auszuprobieren.
Szenen bekomme ich hin, Blockly auch.. Javascript habe ich mal angefangenn, aber ich bin kein Programmierer.
Bash-Scripte sind mein Maximum.Achja der Umzug auf den Iobroker Adapter lief gut. Dank des Adapters Alias, haben die jetzt vernünftige Namen und ich habe die Listenfunktion entdeckt. Sehr hilfreich.
-
RE: MQTT/zigbee2mqtt deconz - Ich stehe mir selbst im Weg
@mickym So, ich habe die Geräte gestern umgezogen, allen einen Alias verpasst (Was für eine tolle Idee.)
Und jetzt passe ich Räumeweise die Geräte an und bastel mal ein paar neue Sichten.Nodered als Logikmaschine werde ich mir auch mal anschauen. Ich denke, aber eins der nächsten Dinge wird ein Tablet an der Wand im Esszimmer sein.
Wo sollte ich bzgl Rode Ned anfangen zu lesen?
VG
Mendikant -
RE: MQTT/zigbee2mqtt deconz - Ich stehe mir selbst im Weg
@mickym Das hier ist mein Thermostat:
https://www.zigbee2mqtt.io/devices/TS0601_thermostat_1.htmlAber ich merke, Du arbeitest ganz anders als ich. Ich baue mir die Szenen alle im iobroker. Dabei steuere ich Lampen wenig einheitlich. Im Esszimmer z.B. sind 7 Leuchten, die je nach Gelegenheit anders angesteuert werden. Aber alle immer unterschiedlich. Und da ist es für mich einfacher das in den Szenen im Iobroker zusammenzuklicken. Wenn ich das im mqtt anlege, habe ich ein weiteres Objekt im Objektbaum
Weiterhin ist mir das "set" via mqtt zu unkomfortabel. Das Risiko von Tippfehlern kommt hinzu.
Das Problem der Benamung kann ich mit dem Adapter "alias" umgehen...Ich schlafe nochmal drüber,tendiere aber zum Wechsel auf zigbee