NEWS
Alexa Ansagen I Telegram I EMail I Alias I VISU I HTML
-
@dslraser @Dominik-F Hallo,
vorne weg danke für deine Super Arbeit! ohne die Blockys würde ich wohl verzweifeln.
ich habe nun das Problem das ich meine Homematic Geräte über den HmIp Adapter eingebunden habe und nicht über den RPC. Einfach aus dem Grund das ich keine CCU besitze sondern nur den Acess Point.
Nun sehen meine Originalen Datenpunkte und dementsprechend auch meine Aliase so aus:
"type": "state", "common": { "name": "windowState", "type": "string", "role": "text", "read": true, "write": false }, "native": {}, "from": "system.adapter.hmip.0", "user": "system.user.admin", "ts": 1661283665554, "_id": "hmip.0.devices.xxxxx.windowState", "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } }
Nunja ich stehe jetzt vor dem Problem das ich die Blockys für Fenster und Türen nicht richtig nutzen kann, das diese nicht richtig gezählt werden.
Ich habe nun einige Tage versucht die Aliase wie im unteren Code aussehen zu lassen leider klappt das nicht so richtig.
{ "type": "state", "common": { "name": "Terrassentür", "def": 0, "type": "number", "read": true, "write": false, "min": 0, "max": 2, "states": { "0": "geschlossen", "1": "gekippt", "2": "geöffnet" }, "role": "window.value", "alias": { "id": "hm-rpc.0.xxx.1.STATE" }, "desc": "per Script erstellt", "unit": "" }, "native": {}, "from": "system.adapter.javascript.0", "user": "system.user.admin", "ts": 1615639660637, "_id": "alias.0.Tueren.Terrassentuer", "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } }
Nun meine frage liegt das am Adapter, das die Datenpunkte nicht richtig ausgegeben werden?
Bin ich irgendwo komplett falsch?Ich wäre über ein wenig hilfe echt dankbar, bin noch blutiger Anfänger der seid einigen Tagen versucht deine Blockys zu verwenden.
-
@tbibnz ich habe mir unter 0_userdata.Fenster alle Datenpunkte aller Kontakte manuell angelegt (wie diese in alias ausehen werden). Dann über Blockly die Kontakte von HMIP getriggert und bei Änderungen den Wert in die Datenpunkte 0_userdata.Fenster.deinepunkte geschrieben. Diese Datenpunkte habe ich dann als alias angelegt und werden somit von dslraser`s Blockly überwacht. Vielleicht hilft dir das weiter.
Gruß//Lucky -
Wie deine ursprünglichen Datenpunkte aussehen oder über welchen Adapter du die einbindest ist eigentlich egal.
Ich nutze zum erstellen der Aliase den Alias-Manager. Damit klappt das recht einfach und du kannst die Aliase auch automatisch erstellen lassen und im Nachhinein noch bearbeiten.Ein Fensterkontakt bzw. bei mir Terrassentürkontakt der mit dem Skript funktioniert sieht bei mir so aus:
{ "common": { "alias": { "id": "hm-rpc.2.0007DA49992A68.1.STATE" }, "name": "Terrassentür", "def": 0, "role": "value.window", "type": "number", "min": 0, "max": 2, "read": true, "write": false, "states": { "0": "geschlossen", "1": "gekippt", "2": "geöffnet" } }, "native": {}, "type": "state", "_id": "alias.0.Wohnzimmer.Terrassentür.STATE", "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" }, "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1643150789802
Du hast bei dir z.B. folgendes drin stehen:
"alias": { "id": "hm-rpc.0.xxx.1.STATE"
Da müsste eigentlich der Datenpunkt drin stehen, auf den sich der Alias bezieht.
Ich würde dir wirklich raten, dass mit dem Alias-Manager zu machen. Das ist für Leute mit wenig Erfahrung wie unter Anderem auch mich einfacher als per Skript. -
"alias": { "id": "hm-rpc.0.xxx.1.STATE"
Dort steht natürlich bei mir die Id des Orginalen Datenpunkt. Das oben gezeigte sollte nur als Beispiel dienen.
Erstellt werden die Aliase auch per Alias Manager, das funktioniert soweit ganz gut.
Die Datenpunkte sind dann eben identisch zu den Orginalen und dort fehlen z.b. dann eben die verschiedenen Zustände wie geschlossen/geöffnet.Im iObroker werden diese bei mir auch nicht als 0 1 oder 2 dargestellt sondern als closed/titled/opened.
Wenn ich den Alias dann im Nachhinein auf die Sturkur wie du sie auch geschrieben hast ändere, steht dann im State geschlossen(0) wie es sein sollte allerdings wird der State nicht mehr getriggert wenn ich das Fenster dann öffne.
-
@lucky_esa Dankeschön, das hört sich vielversprechend an. Versuche es am Wochenende mal und hoffe damit komme ich weiter.
-
Ich hab festgestellt, dass ich anfangs genau das gleiche Problem wie du hatte.
Ich musste im Nachhinein auch meine Datenpunkte anpassen. Wenn du weiter nach unten scrollst findest du auch die Beiträge die mir geholfen haben, vielleicht hilft es dir ja auch
-
@dominik-f danke dir, deswegen habe ich dich auch direkt markiert. Ich habe im Nachhinein meine Alias Datenpunkte auch wie folgt angepasst, dabei natürlich meine id verwendet.
{ "common": { "alias": { "id": "hm-rpc.2.0007DA49992A68.1.STATE" }, "name": "Terrassentür", "def": 0, "role": "value.window", "type": "number", "min": 0, "max": 2, "read": true, "write": false, "states": { "0": "geschlossen", "1": "gekippt", "2": "geöffnet" } }, "native": {}, "type": "state", "_id": "alias.0.Wohnzimmer.Terrassentür.STATE", "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" }, "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1643150789802
Leider Triggert der Alias aber dann nicht mehr wenn ich die Türe dann schließe oder öffne.
-
Ich habe doch oben geschrieben wie du das machen musst. Diese Variante verwende ich da ich meine Fenster Alarmüberwache und dazu benötigt man halt 2 Sensoren.
Dein RAW vom HMIP hat einen string und keine number oder boolean. Keiner Ahnung was da jetzt für Werte reingeschrieben werden aber diesen Value vom String musst du abfragen und in den Datenpunkt 0_userdata... dann eine 0 oder 1 schreiben. Dann den Alias auf 0_userdata referenzieren.Edit: Wenn in deinem HMIP DP closed und open geschrieben wird dann ändere mal deinen Alias so:
Gruß//Lucky -
Mal ne ganz blöde Frage. Hast du nach dem Editieren des Datenpunktes mal den Javascript Adapter neu gestartet?
Ich kann mich aus einem anderen Skript erinnern, dass dies auch manchmal Fehler bei der Erkennung von Datenpunkten behoben hat.Edit:
Das was @Lucky_ESA schreibt kann bzw. wird wahrscheinlich der Grund sein. Mein Orginaldatenpunkt ist bei mir ebenfalls vom Typ "Number". Da er bei dir vom Typ String ist und du eine Number draus machst, könnte das das Problem sein.Hab nochmal geschaut woran es damals lag. Ich hatte beim Orginaldatenpunkt Typ Number und beim Alias Typ String. Erst als beiden Number war, ging es. Vielleicht geht es ja bei dir, wenn beides vom Typ String ist.
-
@dominik-f habe es mittlerweile hinbekommen, vielen dank für deine Hilfe.
-
@lucky_esa auch dir danke habe es zum laufen gebracht.
-
Kannst du deine Lösung hier schreiben? Dann hilft es vielleicht jemanden, der das gleiche Problem hat.
-
@dominik-f Klar ich hatte heute morgen nur nicht so viel Zeit einen größeren Beitrag zu verfassen, wobei die Lösung recht simpel ist.
Manchmal sieht man den Wald vor lauter Bäumen einfach nicht und @Lucky_ESA hat es auch schon richtig erklärt.
"Dein RAW vom HMIP hat einen string und keine number oder boolean."Der HmIP-Adapter arbeitet mit CLOSED/TITLED/OPENED und wenn man die Datenpunkte als Number editiert funktioniert das logischerweise eben nicht.
Also von dem Datenpunkt windowSate einen Alias erstellen und diesen als String editiert und die States anpassen dann erfasst das Blocky die verschiedenen States auch richtig.mein Datenpunkt für eins HmIP Fenstersensor mit offen/geschlossen sieht dann wie folgt aus:
das ganze funktioniert dann natürlich auch als offen/gekippt/geschlossen:
Wie geschrieben es war einfach zu einfach
Nochmals vielen dan für eure Hilfe ich hoffe das der ein oder andere der den HmIP Adapter nutz und auch vor diesem Problem steht kann es nun lösen.
Grüße
Tobi -
@tbibnz
schön das es jetzt funktioniert.Ich nutze diese Blocklys aktuell selbst nicht mehr, da ich iQontrol Nutzer bin und dort nun direkt in iQontrol fast alles was diese Blocklys können auch mit dem Adapter erstellen kann.
Das ganze sieht dann bei mir in iQontrol auch ähnlich aus.Hier mal kurze Beispiele
-
Ich nutze aktuell mehrere deiner Skripte und bin total begeistert. Ich würde eines deiner Skripte gerne etwas verändern, nur sind diese so umfangreich, dass ich den Wald vor lauter Bäumen nicht sehe^^
Es geht um das Skript Bewegungsmelder. Hier werden die Datenpunkte die true sind als erstes angezeigt. ich würde das gerne ändern und die Datenpunkte die false sind als erstes anzeigen lassen in der Liste:
0_userdata.0.Geraete_zaehlen.Bewegungsmelder.Haus.01_Anzeigen_und_Listen.06_html_Bewegungsmelder_Liste
Könntest du mir da vielleicht helfen?
Hintergrund ist, dass ich mir dieses Skript umgeschrieben habe um auf Erreichbarkeit von Geräten zu überprüfen. Ich konnte alles anpassen nur eben nicht diese Liste bzw. die Sortierung davon
-
@dominik-f
Ich bin am WE nicht zu Hause, aber ich such Dir die Stelle/Stellen gern raus. -
Oh super, ich weiß das wirklich zu schätzen. Brauchst du dafür das Skript was ich für Erreichbarkeit umgeschrieben hab fürs testen?
-
@dominik-f
erstmal nicht. Das kann eigentlich nur bei der Sortierung sein. -
Alles klar. Ich danke dir schon mal für deine Mühe.
-
@dominik-f
hier in dieser Funktion sind Sortierungen, dort mußt Du dann nur die Reihenfolge tauschen. (denke ich jedenfalls, nicht getestet, da nicht aktiv bei mir)diese Funktion aufklappen und dann ganz unten wird sortiert
Die Nachrichten, die versendet werden, werden extra sortiert, das ist in dieser Funktion
Schreibe mal ob Du es selbst hinbekommst.