Ich denke zwar nicht das es unmittelbar damit zusammenhängt, aber falls di es nicht mitbekommen hast: das hm-watchdog CCU Addon hat in neueren RaspberryMatic Versionen nicht mehr verloren und sollte deinstalliert werden weil diese Versionen einen eigenen internen Watchdog Mechanismus haben der ggf mit dem Addon kollidieren kann.
Programme werden nicht mehr ausgeführt
Moderatoren: jmaus, Co-Administratoren
- jmaus
- Beiträge: 9848
- Registriert: 17.02.2015, 14:45
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Dresden
- Hat sich bedankt: 462 Mal
- Danksagung erhalten: 1863 Mal
- Kontaktdaten:
Re: Programme werden nicht mehr ausgeführt
RaspberryMatic 3.75.6.20240316 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal /
Re: Programme werden nicht mehr ausgeführt
Hallo Jens!
Natürlich nicht mitbekommen...
Hab es deinstalliert!
Aber auch da hattest Du Recht, es ändert nichts am Problem...
Danke.
Natürlich nicht mitbekommen...
Hab es deinstalliert!
Aber auch da hattest Du Recht, es ändert nichts am Problem...
Danke.
Viele Grüße
tcfigge
--------------------------------------------
223 Kanäle in 70 Geräten und 82 CUxD-Kanäle in 7 CUxD-Geräten:
3x HM-PB-6-WM55, 7x HM-ES-PMSw1-Pl, 3x HM-Sen-MDIR-O-2, 2x HM-Sec-TiS, 7x CUX28, 1x HM-RC-Key4-2, 4x HM-LC-Dim1T-FM, 6x HM-Sec-SC-2, 1x HM-Sec-Key, 3x HM-LC-Sw1-FM, 4x HM-Sec-SCo, 2x HMIP-WTH, 9x HM-LC-Bl1-FM, 2x HM-LC-Sw2-FM, 3x HM-LC-Sw1PBU-FM, 1x HM-LC-Sw4-WM, 1x HM-OU-CFM-Pl, 3x HM-Sec-RHS, 1x HM-Sen-RD-O, 1x HM-PB-4Dis-WM, 1x HM-PBI-4-FM, 1x HMIP-PSM, 11x HM-CC-RT-DN
--------------------------------------------
tcfigge
--------------------------------------------
223 Kanäle in 70 Geräten und 82 CUxD-Kanäle in 7 CUxD-Geräten:
3x HM-PB-6-WM55, 7x HM-ES-PMSw1-Pl, 3x HM-Sen-MDIR-O-2, 2x HM-Sec-TiS, 7x CUX28, 1x HM-RC-Key4-2, 4x HM-LC-Dim1T-FM, 6x HM-Sec-SC-2, 1x HM-Sec-Key, 3x HM-LC-Sw1-FM, 4x HM-Sec-SCo, 2x HMIP-WTH, 9x HM-LC-Bl1-FM, 2x HM-LC-Sw2-FM, 3x HM-LC-Sw1PBU-FM, 1x HM-LC-Sw4-WM, 1x HM-OU-CFM-Pl, 3x HM-Sec-RHS, 1x HM-Sen-RD-O, 1x HM-PB-4Dis-WM, 1x HM-PBI-4-FM, 1x HMIP-PSM, 11x HM-CC-RT-DN
--------------------------------------------
-
- Beiträge: 224
- Registriert: 10.05.2013, 18:40
- Hat sich bedankt: 3 Mal
- Danksagung erhalten: 1 Mal
Re: Programme werden nicht mehr ausgeführt
RaspberryMatic 3.49.17.20200131
CUxD 2.3.4
So, ich bin auch betroffen, und weiß ehrlich gesagt nicht, was ich tun soll. Weder wird noch irgendeines meiner Programme systemseitig ausgeführt, noch lässt es sich händisch starten. Maximaler Kack.
Ich habe bislang
Meine nächsten Schritte wären
Hier mal meine verdächtigen, ineinander greifenden Programme. Vielleicht sieht Jens Maus (Stehst Du mittlerweile eigentlich auf der eq-3-Gehaltsliste? Die sollten Dir freiwillig 8 Mille/Monat rüberschieben!) ja die Ursache des Problems.
Was macht der Quatsch?
1. Programm: Fenster EssZi Telegram Melder (Nicht über die 7, 14, 21 Sekunden Verzögerung wundern. Das ist zum Debuggen. Normalerweise 15, 30, 60 Minuten.)
Der dreifache Skript-Teil in den Dann-Punken sieht jeweils so aus:
2. Programm: FensterTelegramNotifier Dann-Skript-Teil:
3. Programm: FensterTelegramMsgIDSaver
Das funktionierte soweit alles gut, kollabiert (= alle Programme tot) ist es meines Erachtens, nachdem ich im 1. Programm unter Sonst > Systemzustand: Fenster EssZi Status > sofort > geschlossen, ein Skript hinzugefügt habe, das das nachstehende 4. Programm zum Löschen der bereits versandten Telegram-Nachricht aufgeruft:
(Im obigen Screenshot von Programm 1 nicht zu sehen, auf der Fehlersuche schon wieder entfernt).
4. Programm: Telegram Bot RemoveSkript
Zum Prozedere dazu gehört noch ein 5. Programm, daß eine SysVar überwacht und bei Änderung eine Telegram-Nachricht mit deren Inhalt raushaut:
5. Telegram Bot PushSkript
CUxD 2.3.4
So, ich bin auch betroffen, und weiß ehrlich gesagt nicht, was ich tun soll. Weder wird noch irgendeines meiner Programme systemseitig ausgeführt, noch lässt es sich händisch starten. Maximaler Kack.
Ich habe bislang
- sämtliche (skriptlastigen) Programme, die ich in den letzten Tagen hinzugefügt habe, im WebUI deaktiviert, unbedienbar, unsichtbar gemacht
- verdächtige Skript-Zeilen auskommentiert
- x-fach neu gestartet
Meine nächsten Schritte wären
- die neu hinzugekommenen Programme von Neuestes bis Ältestes zu entfernen, dazwischen jedes Mal neuzustarten
- ein .sbk von vor ein paar Tagen einzuspielen, bevor ich die verursachenden Programme hinzugekommen sind.
Hier mal meine verdächtigen, ineinander greifenden Programme. Vielleicht sieht Jens Maus (Stehst Du mittlerweile eigentlich auf der eq-3-Gehaltsliste? Die sollten Dir freiwillig 8 Mille/Monat rüberschieben!) ja die Ursache des Problems.
Was macht der Quatsch?
- Fenster-Öffnungszustand überwachen
- Abhängig von der Außentemperatur nach 15, 30, 60 Minuten oder nie eine Telegram-Nachricht raushauen und sich die MsgID der Telegram-Nachricht merken
- Beim Schließen des Fensters die Telegram-Nachricht anhand der MsgID bei allen Chatgruppen-Teilnehmern wieder löschen
1. Programm: Fenster EssZi Telegram Melder (Nicht über die 7, 14, 21 Sekunden Verzögerung wundern. Das ist zum Debuggen. Normalerweise 15, 30, 60 Minuten.)
Der dreifache Skript-Teil in den Dann-Punken sieht jeweils so aus:
Code: Alles auswählen
!Fenster-offen-Timer und -Telegram-Notification-Script (temperaturabhängig) von Dr. Woo
!Teil 1/3
! SysVar für Prog "FensterTimerTelegramNotifier" ablegen
dom.GetObject('FensterName').State("Esszimmer-Fenster"); ! Name des Fensters (1. Zeile der Telegram-Benachrichtigung)
dom.GetObject('FensterStatusBezeichnung').State("Fenster EssZi Status"); ! Bezeichnung der entsprechenden Fenster Status
! Script-Teil 2/3 aufrufen - Telegram-Benachrichtigung abhängig von Außentemperatur und Öffnungsdauer erstellen & versenden
(dom.GetObject(ID_PROGRAMS).Get('FensterTelegramNotifier')).ProgramExecute();
! Script-Teil 3/3 - Telegram MsgID sichern, um Nachricht beim Schließen des Fensters zurückziehen zu können
(dom.GetObject(ID_PROGRAMS).Get('FensterTelegramMsgIDSaver')).ProgramExecute();
2. Programm: FensterTelegramNotifier Dann-Skript-Teil:
Code: Alles auswählen
!v1.3
!Fenster-offen-Timer und -Telegram-Notification-Script (temperaturabhängig) von Dr. Woo
!Inspiriert durch https://homematic-guru.de/homematic-fenster-laenger-als-15min-geoeffnet-erkennen
!Teil 2/2 - Teil 1 befindet sich jeweils in den Programmen "Fenster [...] Telegram Melder"
! SysVariablen-Zwischenspeicher (gefüllt vom einzelnen fenster_status-Programm) auslesen
var fenster_name = dom.GetObject('FensterName').Value(); ! Name des Fensters (1. Zeile der Telegram-Benachrichtigung)
var fenster_statusbez = dom.GetObject('FensterStatusBezeichnung').Value(); ! Bezeichnung der entsprechenden Fenster Status Systemvariable hier
! Zustand der SysVar "Fenster Status" mittels darin enthaltener Werteliste ändern ->
! geschlossen (0)
! offen (1)
! seit 15 Minuten auf (2)
! seit 30 Minuten auf (3)
! seit 1 Stunde auf (4)
string fenster_status = dom.GetObject(fenster_statusbez).Value();
if ((fenster_status >= 1) && (fenster_status <= 3)) {
fenster_status = fenster_status + 1;
dom.GetObject(fenster_statusbez).State(fenster_status);
}
! Telegram-Benachrichtigungs-Schema
! <= 12° .......... nach 15 min (2)
! >12 bis <=17° ... nach 30 min (3)
! >17 bis <=23° ... nach 60 min (4)
! >23° ............ nie (1)
string AktTemp = dom.GetObject('Wetter Aktuelle Temperatur').Value().ToInteger(); ! Da die Sysvar 'Wetter Aktuelle Temperatur' als ZEICHENKETTE gespeichert ist (Typ Zahl speichert mit etlichen Nachkommastellen), muss zum Rechnen zur GANZZAHL konvertiert werden -> .Value().ToInteger()
string doNotify = 1;
if ( AktTemp <= 12) { doNotify = 2; }
if ( (AktTemp > 12) && (AktTemp <= 17) ) { doNotify = 3; }
if ( (AktTemp > 17) && (AktTemp <= 23) ) { doNotify = 4; }
! --------------------
! Hier wird nun das zuvor gezeigte Benachrichtigungs-Schema (aus AktTemp) gegen den Fenster Status (seit 15/30/60 min offen) abgeglichen.
if ( ( doNotify == fenster_status ) && ( doNotify != 1) )
{
! fenster_status: Zahl-Wert in Text aus Werteliste umwandeln
var y = dom.GetObject(fenster_statusbez).ValueList();
var z = y.StrValueByIndex(";", fenster_status);
! Telegram-Meldung erstellen (wird automatisch vom Programm "Telegram Bot PushSkript" abgefeuert)
dom.GetObject ("Telegram Pusher").State ("*"#fenster_name#"*" # "\n" # z # ".\n" # dom.GetObject ("Wetterteil Telegram-Fenstermeldung").Value() # "\nBitte schließen!");
;} ! Ende der IF-Klammer
Code: Alles auswählen
!v1.0
!Teil 3/3 - Triggernder Teil 1 befindet sich jeweils in den Programmen "Fenster [...] Telegram Melder"
! Komplette Werteliste der zum Fenster gehörenden SysVar "Fenster ... Status" holen
var FensterStatus = dom.GetObject((dom.GetObject('FensterStatusBezeichnung').Value())).ValueList();
! Telegram LastMsgID in der Werteliste auf ID6 (=Position 7, da ID0=Pos 1) ablegen und zurück in SysVar "Fenster ... Status" speichern
dom.GetObject((dom.GetObject('FensterStatusBezeichnung').Value())).ValueList(FensterStatus.Replace(FensterStatus.StrValueByIndex(";", 6), dom.GetObject('Telegram LastMsgID').State()))
Code: Alles auswählen
(dom.GetObject(ID_PROGRAMS).Get('Telegram Bot RemoveSkript')).ProgramExecute();
4. Programm: Telegram Bot RemoveSkript
Code: Alles auswählen
!v1.0
!MsgID holen
string MsgID = dom.GetObject("Telegram DeleteMsgID").Value();
string s_cmd = "wget --no-check-certificate -qO- \"https://api.telegram.org/botxxxxxxx:yyyyyyyyy/deleteMessage?chat_id=zzzzzzzzz&message_id=" # MsgID # "\"";
string stdout;
string stderr;
system.Exec(s_cmd, &stdout, &stderr);
Zum Prozedere dazu gehört noch ein 5. Programm, daß eine SysVar überwacht und bei Änderung eine Telegram-Nachricht mit deren Inhalt raushaut:
5. Telegram Bot PushSkript
Code: Alles auswählen
!v1.2
! TELEGRAM-FRAMEWORK
! Credits: http://www.christian-luetgens.de/homematic/telegram/telegramframework/T-Framework.htm
object o = dom.GetObject ("Telegram Pusher");
string s = o.Value();
string stdout;
string stderr;
if (s != "") {
string s_cmd = "wget -qO- \"https://api.telegram.org/botxxxxxx:yyyyyyyyyy/sendMessage?chat_id=zzzzzzzzz&parse_mode=Markdown&text=" # s.ToUTF8().UriEncode() # "\" | jq .result.message_id";
system.Exec(s_cmd, &stdout, &stderr);
! MsgID in SysVar "Telegram LastMsgID" speichern. Trim() entfernt Zeilenumbruch hinter der MsgID.
dom.GetObject ("Telegram LastMsgID").State(stdout.Trim());
o.State (""); ! SysVar "Telegram Pusher" aus optischen Gründen wieder leeren
}
-
- Beiträge: 213
- Registriert: 10.01.2018, 12:44
- Hat sich bedankt: 3 Mal
- Danksagung erhalten: 13 Mal
Re: Programme werden nicht mehr ausgeführt
Als erste Troubleshootingmaßnahme würde ich mal schauen welche Tasks gerade auf dem Raspberry laufen.
Es würde mich nicht wundern, wenn hier ein verirrter wget-Prozess hängt oder ähnliches.
Nach welcher Änderung trat das Problem denn auf?
Hast du dieses Konstrukt schon früher betrieben?
Auch mit Telegram?
Es würde mich nicht wundern, wenn hier ein verirrter wget-Prozess hängt oder ähnliches.
Nach welcher Änderung trat das Problem denn auf?
Hast du dieses Konstrukt schon früher betrieben?
Auch mit Telegram?
-
- Beiträge: 213
- Registriert: 10.01.2018, 12:44
- Hat sich bedankt: 3 Mal
- Danksagung erhalten: 13 Mal
Re: Programme werden nicht mehr ausgeführt
Wobei wenn ich gerade darüber nachdenke...
Es könnte sein, dass du dich selber in eine Endlosschleife manövriert hast.
Du triggerst dein Telegram-Konstrukt auf die Veränderung der SysVar Telegram Pusher.
Danach verarbeitest du es und anschließend setzt du sie auf "".
Das triggert natürlich dann wieder das Programm, was auf die Veränderung triggert.
Rinse and repeat.
Ich bin mir nicht sicher, ob du es irgendwo in den Scripten abfängst, aber auf den ersten Blick habe ich es nicht gesehen. Damit rennst du dann natürlich im Kreis, sobald es einmal triggert - und damit auch sofort beim booten...
Was passiert wenn du im letzten Script die letzte Zeile mit .state(""); auskommentierst?
Es könnte sein, dass du dich selber in eine Endlosschleife manövriert hast.
Du triggerst dein Telegram-Konstrukt auf die Veränderung der SysVar Telegram Pusher.
Danach verarbeitest du es und anschließend setzt du sie auf "".
Das triggert natürlich dann wieder das Programm, was auf die Veränderung triggert.
Rinse and repeat.
Ich bin mir nicht sicher, ob du es irgendwo in den Scripten abfängst, aber auf den ersten Blick habe ich es nicht gesehen. Damit rennst du dann natürlich im Kreis, sobald es einmal triggert - und damit auch sofort beim booten...
Was passiert wenn du im letzten Script die letzte Zeile mit .state(""); auskommentierst?
-
- Beiträge: 746
- Registriert: 08.02.2017, 11:08
- Hat sich bedankt: 32 Mal
- Danksagung erhalten: 75 Mal
Re: Programme werden nicht mehr ausgeführt
Der TE hatte die Frage bereit in einen neuen eigenen Thread (viewtopic.php?f=65&t=57156) ausgelagert.
-
- Beiträge: 224
- Registriert: 10.05.2013, 18:40
- Hat sich bedankt: 3 Mal
- Danksagung erhalten: 1 Mal
Re: Programme werden nicht mehr ausgeführt
Wie @Hütte schrieb (Danke!), habe ich mein Problem in der Tat, in dem von ihm verlinkten neuen Thread frisch erstellt, da ich mir nach ein paar Tagen des vergeblichen Wartens nicht sicher war, ob mein Anliegen hier auf Seite 17 noch Beachtung erfährt.
Ohne das hier weiter diskutieren zu wollen (um das eigentliche Thema des Threads nicht zu verwässern): Das Leeren der SysVar mit "" ist mehr ein kosmetisches Ding, löst aber definitiv keine Endlos-Schleife aus. Ist erprobt und basiert auf Christian Lütgens’ Telegram-Framework-Homematic-Anleitung.