HomeMatic Firmware-Update als Pushover senden lassen

Einrichtung, Anschluss und Programmierung der HomeMatic CCU

Moderator: Co-Administratoren

scav
Beiträge: 80
Registriert: 26.09.2015, 16:26
Hat sich bedankt: 2 Mal
Danksagung erhalten: 1 Mal

Re: HomeMatic Firmware-Update als Pushover senden lassen

Beitrag von scav » 18.12.2019, 16:18

Der Link "http://update.homematic.com/firmware/do ... rial=12345" um die aktuelle CCU2 Firmware version angezeigt zubekommen, funzt nicht mehr.

Hat jemand einen alternativen Link dafür?

scav
Beiträge: 80
Registriert: 26.09.2015, 16:26
Hat sich bedankt: 2 Mal
Danksagung erhalten: 1 Mal

Re: HomeMatic Firmware-Update als Pushover senden lassen

Beitrag von scav » 20.12.2019, 11:34

Hab die Lösung gefunden, man muß nur die "version" und "serial" mit gültigen Werten ersetzen und schon läufts wieder.

Poste hier mal meinen Script, falls einer interessiert ist (der Script ist nicht von mir alleine, hab nur verschiedene Scripts hier aus dem Thread zusammengefügt und für meine Zwecke angepasst.

Code: Alles auswählen

! Check if there is a new CCU2 firmware available ----------------------------------------------------------------------
string LatestUpdate = dom.GetObject("SV Latest Update");
string Serial;
object Dev;

! Get CCU2 serial ----------------------------------------------------------------------------------------------
Dev = devices.Get("CCU2");
string MetaData = Dev.MetaData("DEVDESC");
integer Pos = MetaData.Find("INTERFACE:");
if(Pos >= 0)
{Serial = MetaData.Substr((Pos + 11 ),10);}

! Check installed firmware version -----------------------------------------------------------------------------
dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State("cat /boot/VERSION");
dom.GetObject("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1);
var CurrentInstalled = dom.GetObject("CUxD.CUX2801001:1.CMD_RETS").State().StrValueByIndex("=",1);
integer CurrentLength = CurrentInstalled.Length() - 1;
CurrentInstalled = CurrentInstalled.Substr(0, CurrentLength);

! Check latest firmware version --------------------------------------------------------------------------------
var url = "http://update.homematic.com/firmware/download?cmd=js_check_version&version=" # CurrentInstalled # "&product=HM-CCU2&serial=" # Serial;
dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State("wget -q -O - '"#url#"'");
dom.GetObject("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1);
var LatestOnline = dom.GetObject("CUxD.CUX2801001:1.CMD_RETS").State().StrValueByIndex("'",1);

! Check if LatestOnline is a valid string ----------------------------------------------------------------------
var CheckVar = LatestOnline.Substr(0,2);
if (CheckVar != "2.")
{
string Message = "INFO: Checking for latest CCU2 update failed!";
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("LD_LIBRARY_PATH=/usr/local/addons/cuxd /usr/local/addons/cuxd/curl -s -k -d token=aTfmaDJHTC9cqcyY8bP6fkKc25Mo91 -d user=u74VKXFbxr1ZNCzhWxbtsKWxTkp6pf -d message='"#Message#"' -d priority=0 https://api.pushover.net/1/messages.json &");
quit;
}

! Check if SV is set and if not, do it -------------------------------------------------------------------------
if ((LatestUpdate.Value() == "") || (LatestUpdate.Value() == "???"))
{LatestUpdate.State(CurrentInstalled);}

! Update SV in case if firmware has been updated ---------------------------------------------------------------
if ((CurrentInstalled == LatestOnline) && (LatestUpdate.Value() != CurrentInstalled))
{LatestUpdate.State(CurrentInstalled);}

! Send notification if new firmware is available and update SV -------------------------------------------------
if ((LatestUpdate.Value() != LatestOnline) && (CurrentInstalled != LatestOnline))
{
string Message = "INFO: New CCU2 firmware available:\r\nInstalled version: " # CurrentInstalled # "\r\nLatest available: " # LatestOnline;
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("LD_LIBRARY_PATH=/usr/local/addons/cuxd /usr/local/addons/cuxd/curl -s -k -d token=aTfmaDJHTC9cqcyY8bP6fkKc25Mo91 -d user=u74VKXFbxr1ZNCzhWxbtsKWxTkp6pf -d message='"#Message#"' -d priority=0 https://api.pushover.net/1/messages.json &");
LatestUpdate.State(LatestOnline);
}
Man muß nur eine Systemvariable mit dem Namen "SV Latest Update" erstellen, die beiden Token und Benutzernamen im pushover Script und den CUxD Kanal anpassen und fertig.

MathiasZ

Re: HomeMatic Firmware-Update als Pushover senden lassen

Beitrag von MathiasZ » 08.01.2020, 05:46

Ich bin einfach zu dumm dazu :evil:
Ich kann tun und machen was ich will.
Ich bekomme einfach keine Mitteilung........
Gut, lebensnotwendig ist das jetzt wirklich nicht.
Wäre halt ein schönes Gadget. :mrgreen:
Gruß,
Mathias

alchy
Beiträge: 10752
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 672 Mal

Re: HomeMatic Firmware-Update als Pushover senden lassen

Beitrag von alchy » 08.01.2020, 07:03

MathiasZ hat geschrieben:
08.01.2020, 05:46
Ich bin einfach zu dumm
Dumm?
Eines machst du jedenfalls falsch.
Wenn ein Script nicht funktioniert postet man das Fehlerprotokoll vom Zeitpunkt der Ausführung und einen Link auf das Script bzw. wenn geändert dann das verwendete Script in Codetags. Ausserdem das Programm als Bildschirmcopy angegangen. Und weil hier im Script curl im Spiel ist, ist es erst Recht hilfreich die CCU FW Version zu posten.


Alchy

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

MathiasZ

Re: HomeMatic Firmware-Update als Pushover senden lassen

Beitrag von MathiasZ » 16.01.2020, 16:30

@Alchy
Bin leider noch nicht dazu gekommen.
Stecke gerade in anderen Dingen fest.
Sobald ich dazu komme melde ich mich.
Gruß,
Mathias

kpm
Beiträge: 29
Registriert: 17.12.2018, 18:07
Hat sich bedankt: 6 Mal
Danksagung erhalten: 2 Mal

Re: HomeMatic Firmware-Update als Pushover senden lassen

Beitrag von kpm » 14.02.2020, 17:20

Hallo,
bei mir leider das gleiche Ergebnis: Das Script läuft nicht durch. Ich habe deshalb zur Fehlersuche ein paar Writeline eingefügt.
Dabei habe ich (hoffentlich) den 1. Fehler gefunden:
Die Zeile
string LatestUpdate = dom.GetObject("CCU SV Latest Update");
müsste korrekt lauten
string LatestUpdate = dom.GetObject("CCU SV Latest Update").Value();

Die Serial wird nicht ermittelt. Was da falsch im Script ist, habe ich leider noch nicht gefunden.
Wenn ich meine korrekte Serial direkt im Script angebe, läuft die Anfrage korrekt durch und ich erhalte die richtige Antwort vom Update-Server.

Kann sich bitte jemand das Script (die Ermittlung der Serial) noch mal ansehen?
Vielen Dank!

kpm
Zuletzt geändert von kpm am 14.02.2020, 22:28, insgesamt 2-mal geändert.

alchy
Beiträge: 10752
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 672 Mal

Re: HomeMatic Firmware-Update als Pushover senden lassen

Beitrag von alchy » 14.02.2020, 22:09

kpm hat geschrieben:
14.02.2020, 17:20
string LatestUpdate = dom.GetObject("CCU SV Latest Update");
müsste korrekt lauten
string LatestUpdate = dom.GetObject("CCU SV Latest Update").Value()
Welches der Scripte?
und wieso?
Man könnte optimaler Weise

Code: Alles auswählen

object LatestUpdate = (dom.GetObject(ID_SYSTEM_VARIABLES)).Get("CCU SV Latest Update");
verwenden.
Ansonsten musst du natürlich Bedingungen erfüllen. Systemvariable SV Latest Update muss da sein, der CCU Name in Dev = devices.Get("CCU2");

muss stimmen.....

Alchy

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

kpm
Beiträge: 29
Registriert: 17.12.2018, 18:07
Hat sich bedankt: 6 Mal
Danksagung erhalten: 2 Mal

Re: HomeMatic Firmware-Update als Pushover senden lassen

Beitrag von kpm » 14.02.2020, 22:24

Hallo alchy,

ich meine das Script von scav vom 20.12.2019.
Ich habe meinen Beitrag soeben noch mal editiert. Die SV "CCU SV Latest Update" ist vorhanden.
Die Änderung hier noch mal:

Die Serial wird nicht ermittelt. Was da falsch im Script ist, habe ich leider noch nicht gefunden.
Wenn ich meine korrekte Serial direkt im Script angebe, läuft die Anfrage korrekt durch und ich erhalte die richtige Antwort vom Update-Server.

Könntest Du Dir bitte das Script (die Ermittlung der Serial) noch mal ansehen?

Danke schon mal.
kpm

alchy
Beiträge: 10752
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 672 Mal

Re: HomeMatic Firmware-Update als Pushover senden lassen

Beitrag von alchy » 14.02.2020, 22:33

1. nicht mein Script
2. Du brauchst das doch gar nicht. Die Seriennummer muss nicht stimmen.

naja, auf die Schnelle:
Theoretisch sollte der Code stimmen, aber ist der Name deiner CCU (und zwar der RF Teil !) denn wie im Script angegeben CCU2 :?:

Alchy

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

kpm
Beiträge: 29
Registriert: 17.12.2018, 18:07
Hat sich bedankt: 6 Mal
Danksagung erhalten: 2 Mal

Re: HomeMatic Firmware-Update als Pushover senden lassen

Beitrag von kpm » 14.02.2020, 23:15

Na ja, Du hast schon Recht.
Meine Serial ändert sich ja nicht - da brauche ich sie auch nicht jedes Mal neu ermitteln. Der feste Eintrag im Script reicht.
Danke - und schönes Wochenende!

kpm

Antworten

Zurück zu „HomeMatic Zentrale (CCU / CCU2 / CCU3 / Charly)“