Bei mir spinnt alles
Moderator: Co-Administratoren
-
- Beiträge: 4155
- Registriert: 09.09.2012, 10:41
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 78 Mal
- Danksagung erhalten: 301 Mal
Re: Bei mir spinnt alles
Wenn der Zeitversatz nicht so extrem lang wäre, würde ich darauf tippen, dass irgendein Prozess den Rechner ausbremst.
Ich hatte mal den Effekt, dass die Abfrage meiner NETATMO-Werte durch einen Script (Zugriff auf eine URL mit XML Inhalt) bis zu >30 Sekunden hing, weil die Antwort von der URL verzögert kam. War ein TCL Script. Wenn mich nicht alles täuscht, habe ich die Verzögerung im Systemlog gesehen. In dieser Zeit wurde keine programmgesteuerte Aktion in der CCU ausgelöst - die Programme liefen erst nach Ablauf dieser Zeit.
Ich würde folgendes machen:
1. Logs kontrollieren
2. Alle Programme mit Scripten temporär deaktivieren
Ich hatte mal den Effekt, dass die Abfrage meiner NETATMO-Werte durch einen Script (Zugriff auf eine URL mit XML Inhalt) bis zu >30 Sekunden hing, weil die Antwort von der URL verzögert kam. War ein TCL Script. Wenn mich nicht alles täuscht, habe ich die Verzögerung im Systemlog gesehen. In dieser Zeit wurde keine programmgesteuerte Aktion in der CCU ausgelöst - die Programme liefen erst nach Ablauf dieser Zeit.
Ich würde folgendes machen:
1. Logs kontrollieren
2. Alle Programme mit Scripten temporär deaktivieren
Es gibt 10 Arten von Menschen: solche die Binärcode verstehen und solche, die ihn nicht verstehen.
-
- Beiträge: 14148
- Registriert: 08.05.2013, 23:33
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Nordwürttemberg
- Hat sich bedankt: 583 Mal
- Danksagung erhalten: 1497 Mal
Re: Bei mir spinnt alles
Ähnliches habe ich auch erlebt. Das ist auch der Grund, warum ich größtenteils auf externe Webabfragen verzichte. Ein hängendes Script kann quasi die gesamte CCU lahmlegen (man erinnere sich an die Diskussion um Wait-States in Regascript). Wenn ich dann hier beobachte, wie viele Anwender allen möglichen Mist von externen Servern abfragen,, die manches Mal absolut nichts mit Hausautomation zu tun haben, wundere ich mich überhaubt nicht über die Instabilitäten mancher Installationen. Steht ein externer Zugriff mal nicht oder (schlimmer noch) nur eingeschrankt zur Verfügung, hängt die CCU. Dann ist nicht mehr Funktionalität gegeben als bei einer cloudbasierten IP-Installation. TCL-Scripte sollten aber m.E. nicht davon betroffen sein.
Gruß Xel66
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch
- blackhole
- Beiträge: 3730
- Registriert: 21.07.2015, 14:03
- System: CCU
- Hat sich bedankt: 184 Mal
- Danksagung erhalten: 587 Mal
Re: Bei mir spinnt alles
Da gehört bei aktuellen Rega-Versionen der Vergangenheit an.
Man muss das entsprechende Skript nur mittels Et-Zeichen (&) in der Hintergrund schicken ("Subshell", "forken").
-
- Beiträge: 14148
- Registriert: 08.05.2013, 23:33
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Nordwürttemberg
- Hat sich bedankt: 583 Mal
- Danksagung erhalten: 1497 Mal
Re: Bei mir spinnt alles
Ok, danke für die Info. Ist an mir vorbeigegangen.
Gruß Xel66
Gruß Xel66
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch
- blackhole
- Beiträge: 3730
- Registriert: 21.07.2015, 14:03
- System: CCU
- Hat sich bedankt: 184 Mal
- Danksagung erhalten: 587 Mal
Re: Bei mir spinnt alles
Mittels Helper-Skript war das übrigens schon immer möglich - auch bei Einsatz alter Rega-Versionen auf alten CCUs.
Die Wenigsten dürften diese Möglichkeit allerdings genutzt haben.
Ich regel das auch heute (CCU3, aktuelle Firmware) noch so, da ich der Rega-Anpassung nie wirklich getraut habe (lange Zeit zu Recht).
Mittlerweile sollte das aber stabil und ohne Zombies zu hinterlassen funktionieren. Man kann somit empfehlen das auch zu nutzen.
Die Wenigsten dürften diese Möglichkeit allerdings genutzt haben.
Ich regel das auch heute (CCU3, aktuelle Firmware) noch so, da ich der Rega-Anpassung nie wirklich getraut habe (lange Zeit zu Recht).
Mittlerweile sollte das aber stabil und ohne Zombies zu hinterlassen funktionieren. Man kann somit empfehlen das auch zu nutzen.
-
- Beiträge: 507
- Registriert: 04.12.2016, 23:30
- Hat sich bedankt: 2 Mal
- Danksagung erhalten: 2 Mal
Re: Bei mir spinnt alles
Guten Neues zusammen,
ja ich verwende Skripte mit externen Abfragen/Bedienungen. Egal was ich veranstaltet habe, nicht funktionierte mehr richtig. Egal ....
Habe jetzt das Asus Tinker S mit dem aktuellen RaspberryMatic auf dem EMMC-Speicher geflasht, nach und nach die Geräte sauber von der alten CCU2 abgelernt und am Tinker neu angelernt, nach und nach schreibe ich die Programme ect. neu. Also quasi ein Neuanfang.
Probleme habe ich jetzt nur noch bei einigen Skripten, die ich aber unbedingt brauche und die vorher definitiv funktioniert haben. Ich muss ein paar Zustände von meiner Solarsteuerung UVR1611 abfragen.
ja ich verwende Skripte mit externen Abfragen/Bedienungen. Egal was ich veranstaltet habe, nicht funktionierte mehr richtig. Egal ....
Habe jetzt das Asus Tinker S mit dem aktuellen RaspberryMatic auf dem EMMC-Speicher geflasht, nach und nach die Geräte sauber von der alten CCU2 abgelernt und am Tinker neu angelernt, nach und nach schreibe ich die Programme ect. neu. Also quasi ein Neuanfang.
Probleme habe ich jetzt nur noch bei einigen Skripten, die ich aber unbedingt brauche und die vorher definitiv funktioniert haben. Ich muss ein paar Zustände von meiner Solarsteuerung UVR1611 abfragen.
Kannst du mir das vieleicht mal ein verständlich erklären, meine Skripte wurden mir von Alchy geschrieben, ich raffe das selber nicht.blackhole hat geschrieben: ↑31.12.2018, 16:56Mittels Helper-Skript war das übrigens schon immer möglich - auch bei Einsatz alter Rega-Versionen auf alten CCUs.
Die Wenigsten dürften diese Möglichkeit allerdings genutzt haben.
Man muss das entsprechende Skript nur mittels Et-Zeichen (&) in der Hintergrund schicken ("Subshell", "forken").
Code: Alles auswählen
! UVR 1611 - Ausgang A5 aus Bl-Net auslesen und in Sysvar Typ Zeichenkette speichern by Alchy
string IP ="192.168.2.51:51";
string KNOTEN = "AA200501"; !" abzufragende Knotenpunkte mit \t getrennt
!++++++++++++ BITTE AB HIER NICHTS MEHR AENDERN ++++++++++
string index;
string name;
foreach (index, KNOTEN) {
var url = "http://"#IP#"/c_index.htm?C="#index#"";
dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State("wget -q -O - '"#url#"'");
dom.GetObject("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1);
string srueck = dom.GetObject("CUxD.CUX2801001:1.CMD_RETS").State();
dom.GetObject("Pelletofen.Status").State(srueck);
}
################################################################################################
! UVR 1611- Eingang E14 auslesen
var url = "192.168.2.51:51/c_index.htm?C=8D200E01";
dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State("wget -q -O - '"#url#"'");
dom.GetObject("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1);
string rueckgabe = dom.GetObject("CUxD.CUX2801001:1.CMD_RETS").State();
! Die komischen Tabs loswerden
if (rueckgabe.Find(" ") > -1)
{
rueckgabe = rueckgabe.Substr(6, rueckgabe.Length()-6);
if (rueckgabe.Find(" ") > -1)
{
rueckgabe = rueckgabe.Substr(6, rueckgabe.Length()-6);
};
};
! Die Maßeinheit (nur °C) loswerden
rueckgabe = rueckgabe.Substr(0, rueckgabe.Length()-8);
! Das Leerzeichen bei (einstelligen zweistellig hatte ich noch nicht) negativen Zahlen loswerden
if (rueckgabe.Find(" ") > -1)
{
rueckgabe = "-" + rueckgabe.Substr(2, rueckgabe.Length()-2);
}
!---- Komma in der Temperatur durch ein Punkt ersetzen um realen Wert in Zahl wandeln zu koennen-----------------
integer ikomma = rueckgabe.Find(",");
string saus1 = rueckgabe.Substr(0, ikomma);
string saus2 = saus1 + "." + rueckgabe.Substr(ikomma + 1, 5);
var zaus = saus2.ToFloat();
dom.GetObject("Pelletofen.Temp.Vorlauf").State(zaus);
################################################################################################
! SV Pelletofen.Status wandeln
string tmpA = "EIN";
if(tmpA == dom.GetObject("Pelletofen.Status").Value()){dom.GetObject("Pelletofen").State(true);}
else {dom.GetObject("Pelletofen").State(false);}[/quote]
G.V.
- blackhole
- Beiträge: 3730
- Registriert: 21.07.2015, 14:03
- System: CCU
- Hat sich bedankt: 184 Mal
- Danksagung erhalten: 587 Mal
Re: Bei mir spinnt alles
Du packst alle Shell-Aufrufe ein Bash-Skript (z.B. "/usr/local/addons/solar/zustand.sh") und rufst es im einfachsten Fall in dieser Art per HM-Script auf:
Code: Alles auswählen
system.Exec("/usr/local/addons/solar/zustand.sh &");
Ich habe auf diese Art praktisch alle "angedockten Systeme" (z.B. Viessmann, Telegram, Echo, Zigbee etc.) und externe Inhalte (z.B. Systeminfos, (Un)Wetter, ODL-Info, Nina etc.) in die CCU integriert. Performant, ohne jegliche Addons Dritter, ohne externe Steuerungen, somit ohne Abhängigkeiten, energiesparend und jederzeit 100% portabel.
Statt des abschließenden Et-Zeichens nutze ich aus vorgenannten Gründen zurzeit noch ein Helper-Skript, was aber, wie gesagt, nicht mehr nötig sein sollte.
Zuletzt geändert von blackhole am 30.08.2022, 15:22, insgesamt 1-mal geändert.
- blackhole
- Beiträge: 3730
- Registriert: 21.07.2015, 14:03
- System: CCU
- Hat sich bedankt: 184 Mal
- Danksagung erhalten: 587 Mal
Re: Bei mir spinnt alles
Verstehe. Der nächste Schritt wäre jetzt die Erstellung individueller Shell-Skripte, falls Du diesen Ansatz verfolgen möchtest. Hierfür benötigst Du offensichtlich individuelle Hilfe (vielleicht von einem Bekannten) oder eben die Muße dich selbst einzuarbeiten.
Verwendbare Code-Schnipsel für Teillösungen findet man sicherlich in meinen Projekten. Ich beantworte hierzu gerne konkrete Fragen. Für einen individuellen Crash-Kurs oder für eine individuelle Komplettlösung fehlt mir allerdings Zeit und Muße.
Die Alternative ist das Ganze wie gehabt umzusetzen ("Logik" in HM-Script + CUxD-Shellaufrufe) und im Rahmen der Möglichkeiten zu optimieren.
Das ist allerdings nicht mehr mein Thema, da ich genau diese Kombination bei mir abgeschafft habe.