NEWS
PING-Statusänderung an CCU-Systemvariable übergeben
-
Hallo Bluefox,
HERZLICHEN DANK!:) - So einfach also;)
Auch für den Tip mit der Szene.
eine kleine Frage hätte ich da aber noch;)
Wie könnte ich in einem Durchgang alle im PING-Adapter angelegten Objekte abfragen und entsprechend reagieren?
Also jetzt nicht mit einer Szene sondern mit einem Script.
Ich dachte da an so was wie den cacheSelectorState, würde das funktionieren, und wenn ja, wie müsste der cacheSelectorState aussehen?
Also mein Ziel ist es ca. alle 60s zu pingen und entsprechend auf der CCU die Status zu setzen.
@Bluefox:Ich verwende kein CuxD. `
Ich nutze noch CUxD, da ich teilweise auch noch FS20 und ITS-Geräte verwende.
Würde denn das mit ioBroker auch direkt funktionieren?
Internette Grüße
Andy `
Die Datenpunkte von ping zu bekommen ist einfach. (Schreibe später von zuhause). Aber wie willst du Zuordnung zu Rega Variablen machen? Array? -
Die Datenpunkte von ping zu bekommen ist einfach. (Schreibe später von zuhause). Aber wie willst du Zuordnung zu Rega Variablen machen? Array? `
Das ist eine gute Frage;).
Ich denke mal, ich hätte das entsprechend so wie im diesem "UNREACH-Script" gemacht.
Also während des Schleifendurchlaufs einfach den entsprechenden Datenpunkt mit setState(…) gesetzt.
Ob das so optimal ist weiß ich zwar nicht, aber so würde ich mir behelfen.
Es ist zwar sehr müßig sich im Forum immer wieder kleine Code-Schnipsel zusammen zu suchen und diese zu analysieren,
aber so kann man halt auch lernen;).
Ich weiß, und darum habe ich unheimlich Respekt vor euer Arbeit, dass ihr viele geniale Gedanken in das Projekt steckt und auch immer wieder neue Dinge dazu kommen, doch oftmals ist es für einen "Außenstehenden" recht kompliziert diese nachzuvollziehen.
In diesem Zusammenhang noch eine kleine Frage;):
Kann ich irgendwie den Objekt-Typ auswerten? Also ob Dimmer oder Switch?
Weil, bei mir funktioniert das "Licht-Schript" nur mit der Selection auf .STATE und .LEVEL nicht korrekt.
Ursache sind da wieder CUxD-Geräte die beide Datenpunkte haben,aber jeweils nur den benötigten setzen.
-
> (Schreibe später von zuhause)
var ccuPings = { 'ping.0.root.192_168_7_9': 'hm-rega.0.12345', 'ping.0.root.192_168_7_10': 'hm-rega.0.12346', 'ping.0.root.192_168_7_11': 'hm-rega.0.12347', 'ping.0.root.192_168_7_12': 'hm-rega.0.12348', 'ping.0.root.192_168_7_13': 'hm-rega.0.12349' }; var pings = $('ping.0.*').on(function(obj) { if (ccuPings[obj.id]) { setState(ccuPings[obj.id], obj.newState.val); } });
> Kann ich irgendwie den Objekt-Typ auswerten? Also ob Dimmer oder Switch?
Das geht natürlich, allerdings, die Info muss irgendwo in dem Objekt stehen.Ich kann man feststellen ob es ein Dimmer oder Switch ist? Funktion, name, role?
-
Super!
Funktioniert:).
-
Liebe Leute,
ich versuch mich gerade in das Scripting einzulesen und hab extrem viele Fragezeichen in meinem Kopf…
Folgender Codeteil ist mir ein komplettes Rätsel:
var pings = $('ping.0.*').on(function(obj) { if (ccuPings[obj.id]) { setState(ccuPings[obj.id], obj.newState.val); } })
Was wird da genau gemacht? OK, es wird eine Variable Pings angelegt und anscheinend auch zugewiesen, aber mehr versteh ich da nicht mehr….warum ist in der Variablen Definition auch eine IF Abfrage mit drinnen, bzw. wie ist das alles miteinander verstrickt?
Grüße
etv
-
@etv:Liebe Leute,
ich versuch mich gerade in das Scripting einzulesen und hab extrem viele Fragezeichen in meinem Kopf…
Folgender Codeteil ist mir ein komplettes Rätsel:
var pings = $('ping.0.*').on(function(obj) { if (ccuPings[obj.id]) { setState(ccuPings[obj.id], obj.newState.val); } })
Was wird da genau gemacht? OK, es wird eine Variable Pings angelegt und anscheinend auch zugewiesen, aber mehr versteh ich da nicht mehr….warum ist in der Variablen Definition auch eine IF Abfrage mit drinnen, bzw. wie ist das alles miteinander verstrickt?
Grüße
etv `
Hallo,
das ist eine on() Funktion.
Diese sorgt dafür, dass wenn sich bei ping.0. ein Status ändert, dann automatisch der Staus an die mit "var ccuPings" definierten obj.id´s weitergeleitet wird.
-
OK, danke!
Das heißt, diese on(…) Funktion überwacht das angegebene Objekt automatisch solange das Script auf aktiv geschaltet ist? Quasi wie die WebGui Programme auf der CCU - auslösen bei Änderung? Und die If-Anweisung danach ist wie die "wenn..." im WebUI?
Wenn dem so ist, dann hab ich ja wieder Licht am Ende des Tunnels
Grüße
etv
-
@etv:OK, danke!
Das heißt, diese on(…) Funktion überwacht das angegebene Objekt automatisch solange das Script auf aktiv geschaltet ist? Quasi wie die WebGui Programme auf der CCU - auslösen bei Änderung? Und die If-Anweisung danach ist wie die "wenn..." im WebUI?
Wenn dem so ist, dann hab ich ja wieder Licht am Ende des Tunnels
Grüße
etv `
Genau so ist das zu verstehen.
Danke noch mal an Bluefox, der das Script geschrieben hat:)!
Bei mir ist es so, dass ich das Ping von der CCU/CUxD auf ioBroker "verschoben habe, aber trotzdem einige Ping´s zur Anwesenheitssteuerung auf der CCU benötige.
Also habe ich dort entsprechende Systemvariablen angelegt, und lasse diese über das kleine ioBroker-Script setzen.
-
…spitze - danke für deine Hilfe!
Ich spiel erst sein wenigen Tagen mit ioBroker herum - das Tool ist sehr mächtig - und ich überlege eben auch, einige Dinge auf ioBroker zu übersiedeln, weil einfach die Möglichkeiten viel größer sind. Genau der Ping ist so eine Sache! Mein Telefon gibt leider nicht immer eine Antwort (danke Google und deinem neuen Doze-Mode ) und dann geht bei mir alles aus, weil ja keiner da ist und ich sitz' im finstern oder ohne Radio da...
...naja und das müsste man mit einem neuen etwas komplexeren Script lösen und ich denke, dass das hier auf ioBroker eleganter gehen wird!
Naja, es wird....aber ich hab erst 2% des Forums durch - also noch viel Lektüre vor mir
Grüße
etv
-
Na ja, dann mal noch viel Spaß.
Unterstützung wirst du hier immer durch die Profis bekommen, dessen kannst du sicher sein.
Ich finde ioBroker schon wirklich klasse, und habe großen Respekt an die Entwickler.
CCU.IO war schon toll, aber ioBroker…
Allerdings ist ioBroker wirklich nur was für Leute, die sich damit auch wirklich beschäftigen wollen.
So "bequem" wie es einem in der Homematic WebUI gemacht wird ist es definitiv nicht.
Aber dafür so richtig mächtig, und durch den vis auch sehr individuell.