NEWS
[gelöst]Homematic Variable in ioBroker anzeigen
-
Hallo zusammen,
kann mir einer helfen warum die Variable im ioBroker nicht richtig angezeigt wird x.xx.x in der CCU is es richtig.
Danke
-
Ist das eine selbsterstellte Variable?
-
nein wurde automatisch erstellt in ioBroker und in der CCU selber
-
@Saschag sagte in Homematic Variable in ioBroker anzeigen:
nein wurde automatisch erstellt in ioBroker und in der CCU selber
Welche genau?
-
Der Datenpunkte rega 22366 wurde automatisch erstellt und in der CCU habe ich ihn als Zeichenkette selber angelegt.
-
@Saschag Wie wird die SV in der CCU gefüllt ? %0A sieht nach einem LF (line feed) am Ende aus.
-
In ioB ist klar, nur befüllst du diese mit einem Skript auf der CCU oder wie entsteht diese? Tritt das Problem noch bei anderen Variablen auf? Welche hm-Rega Version nutzt du? Wird die FW richtig angezeigt wenn du in den Adaptereinstellungen Duty Cycle synchronisieren machst und die FW in den dadurch entstandenen State erstellt?
-
RegaVersion 2.3.0.
An anderen Stellen ist mir das noch nicht aufgefallen.
Die FW ist richtig. Wird über eine Script in der CCU erstellt.
Mit dem DutyCycle wusste ich garnicht
aber jetzt
Wird richtig angezeigt.
Vielen Dank schon mal
dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State("cat /boot/VERSION"); dom.GetObject("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1); var sold = dom.GetObject("CUxD.CUX2801001:1.CMD_RETS").State().StrValueByIndex("=",1); var url = "http://update.homematic.com/firmware/download?cmd=js_check_version&version=12345&product=HM-CCU2&serial=12345"; dom.GetObject("CUxD.CUX2801001:2.CMD_SETS").State("wget -q -O - '"#url#"'"); dom.GetObject("CUxD.CUX2801001:2.CMD_QUERY_RET").State(1); var snew = dom.GetObject("CUxD.CUX2801001:2.CMD_RETS").State().StrValueByIndex("'",1); if (sold.Find(snew)==0) { string message = ("No FW-Update, weil alt: "#sold #" und neu "#snew); } else { string message = ("New FW-Version, weil alt: "#sold #" und neu "#snew); } (dom.GetObject(ID_SYSTEM_VARIABLES).Get("CCU SV Firmware")).State(sold); ! Auswahl des Push-Dienstes (nur, wenn "CCU SV Push-Dienst" vorhanden) dom.GetObject("CCU SV Push Dienst").State("1"); ! Setzen der Priorität für die Push-Nachricht (nur, wenn "CCU SV Push Prio" vorhanden) dom.GetObject("CCU SV Push Prio").State("-1"); dom.GetObject("CCU SV Pushover Sound").State("gamelan"); ! Gerät für Pushover-Nachricht dom.GetObject("CCU SV Pushover Gerät").State("iPhoneSascha"); dom.GetObject("CCU SV Push Text").State(message); ! Programm "CCU PRG Push-Nachrichten" ausführen dom.GetObject("CCU PRG Push-Nachrichten").ProgramExecute(); WriteLine(sold);
-
@Saschag bin nicht so tief in tcl drin, könnte mir allerdings vorstellen, dass du mit dieser Split Methode alles in der Zeile von Version= ab dem = holst und somit den line Break mit drin hast und da CCU Html darstellt, fällt es dort nicht auf.
-
Danke du hast recht! da ist ein Absatz in der CCU Variable
Mal schauen wie ich den Weg bekomme
-
@Saschag Du könntest
dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State("cat /boot/VERSION");
durch
dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State("cat /boot/VERSION | grep VERSION | tr -d VERSION=");
ersetzen und
var sold = dom.GetObject("CUxD.CUX2801001:1.CMD_RETS").State().StrValueByIndex("=",1);
durch
var sold = dom.GetObject("CUxD.CUX2801001:1.CMD_RETS").State();
dann sollte es gehen. Ist dann eben der 'ich mag kein tcl'-Weg.
-
-
@Saschag dann probier es mal mit
cat /boot/VERSION | grep VERSION | tr -d VERSION=[:space:]
` -
Super klappt!