Satreceiver Startup Check

Allgemeine Fragen zum Thema "Smart Home" und Entscheidungshilfen

Moderator: seppy

Benutzeravatar
PeterA
Beiträge: 1106
Registriert: 8. Feb 2019 12:12
Answers: 13

Satreceiver Startup Check

Beitrag von PeterA »

Hallo zusammen.

Für geplante Aufnahmen lasse ich meinen Satreceiver über einen ShellyPlugS einige Minuten vor der Aufnahme einschalten.
Leider fährt der Satreceiver (Coolstream Tank) manchmal nicht komplett hoch.

Könnte ich das mittels OpenHab abfangen und bei nicht Erfolgreichem Startup nochmal vom Netz trennen und nach z.b. 30sek wieder Einschalten?

Es gibt schon zwei Shell Scripte welche mir die Aktuelle Uhrzeit und Sendung in OpenHab übertragen.

Damit könnte doch so etwas möglich sein ?

Im Prinzip so:

Shelly Schaltet ON (ist als Status verfügbar)
Nach 1min sollte die Coolstream Uhrzeit verfügbar sein (ist auch in OH verfügbar)
Falls nicht. Schalte den Shelly wieder ab und nach 30sek wieder ein.

Gruß Peter

edit:
Das Shell Script gibt "offline" zurück wenn der Satreceiver nicht erreichbar ist.
Damit lässt sich doch etwas anfangen...
von violine21 » 29. Okt 2020 20:56
Hallo,
ich lese hier still mit, da mich das Thema auch interessiert.
Ich bin jetzt nicht so tief in der Materie, aber kann es sein, das die Programmzeile

Code: Alles auswählen

createTimer(now.plusSeconds(30), [|                                      // lege Timer an
so heissen müsste?

Code: Alles auswählen

tCheck = createTimer(now.plusSeconds(30), [|                                      // lege Timer an
Würde mich mal brennend interessieren, ob es dann funktioniert...
Gehe zur vollständigen Antwort
- OpenHab 2.4
#PWRUP

Benutzeravatar
udo1toni
Beiträge: 15269
Registriert: 11. Apr 2018 18:05
Answers: 245
Wohnort: Darmstadt

Re: Satreceiver Startup Check

Beitrag von udo1toni »

Ja, sicher geht da was. Allerdings ist es nicht so schön, der Kiste den Strom unterm Hintern wegzuziehen. Computer mögen es allgemein nicht, hart ausgeschaltet zu werden...


Gesendet von iPad mit Tapatalk
openHAB4.3.6 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

Benutzeravatar
PeterA
Beiträge: 1106
Registriert: 8. Feb 2019 12:12
Answers: 13

Re: Satreceiver Startup Check

Beitrag von PeterA »

Ja... das ist ja niemals gut.
Nörgel: Es ist ja kein Computer sondern ein Satreceiver. Nagut das sind ja mittlerweile auch kleine Computer :)
Aber alles andere als die Kiste vom Netz zu trennen hilft in diesem Fall nicht.
Ich hab schon gesehen das man in einer Rule bei einem Item auf einen String prüfen kann:

Code: Alles auswählen

CoolstreamTime.state.toString.contains ("offline")
Das wäre jetzt mein Entwurf:

Code: Alles auswählen

rule "Satreceiver Startup Check"
var Timer tCheck = null                            // globale Variablen zu Beginn der Datei definieren

rule "Satreceiver Startup Check"                                          
when
   Item ShellyPlugS_Sat changed to ON                   // SAT eingeschaltet
then
   tCheck?.cancel 				     // eventuell laufenden Timer stoppen
   createTimer(now.plusSeconds(120), [| // lege Timer an
        if ((CoolstreamTime.state.toString.contains ("offline") && ShellyPlugS_Denon.state==(ON)) // offline = Satreceiver ist nicht hochgefahren //am Denon hängt noch der Switch
        ShellyPlugS_Sat.sendCommand(OFF)             // schalte ab wenn CoolstreamTime "offline" behinhaltet
    ])
        tCheck?.cancel
            tCheck = createTimer(now.plusSeconds(15), [|    // lege Timer an
            ShellyPlugS_Sat.sendCommand(ON)                   // schalte nochmal ein     
        ])
end 
- OpenHab 2.4
#PWRUP

Benutzeravatar
PeterA
Beiträge: 1106
Registriert: 8. Feb 2019 12:12
Answers: 13

Re: Satreceiver Startup Check

Beitrag von PeterA »

Also jetzt bin ich wieder mit meinem Latein am Ende..

Die Rule Tiggert, wartet 30 Sek. und Schaltet dann ab weil der Satreceiver noch offline ist.
Aber das wieder Einschalten 15sek Nach dem Abschalten bekomme ich nicht hin.

Code: Alles auswählen

var Timer tCheck = null                                    // globale Variablen zu Beginn der Datei definieren

rule "Satreceiver Startup Check"
when
   Item ShellyPlugS_06 changed to ON                      // SAT eingeschaltet
then
   logInfo("Coolstream Startup Check","Coolstream eingeschaltet, warte auf hochfahren.")
   tCheck?.cancel 				                          // eventuell laufenden Timer stoppen
   createTimer(now.plusSeconds(30), [|                    // lege Timer an
   if (CoolstreamTime.toString.contains ("offline") && ShellyPlugS_05_Proxy.state==ON)// offline = Satreceiver ist nicht hochgefahren //am Denon hängt noch der Switch
        ShellyPlugS_06.sendCommand(OFF)                    // schalte ab wenn CoolstreamTime "offline" behinhaltet
        logInfo("Coolstream Startup Check","Coolstream offline, schalte noch mal ab.")
    ])
    tCheck?.cancel
    if (ShellyPlugS_06.state==OFF)
        tCheck = createTimer(now.plusSeconds(15), [|    // lege Timer an
        ShellyPlugS_06.sendCommand(ON)                  // schalte nochmal ein
        logInfo("Coolstream Startup Check","Coolstream offline, schalte wieder ein.")
    ])
end
- OpenHab 2.4
#PWRUP

Benutzeravatar
PeterA
Beiträge: 1106
Registriert: 8. Feb 2019 12:12
Answers: 13

Re: Satreceiver Startup Check

Beitrag von PeterA »

So neuer Versuch und diese Version funktioniert.

Code: Alles auswählen

var Timer tCheck = null                                    // globale Variablen zu Beginn der Datei definieren

rule "Satreceiver Startup Check"
when
   Item ShellyPlugS_06 changed to ON                      // SAT eingeschaltet
then
   logInfo("Coolstream Startup Check","Coolstream eingeschaltet, warte auf hochfahren.")
   tCheck?.cancel 				                          // eventuell laufenden Timer stoppen
   createTimer(now.plusSeconds(180), [|                   // lege Timer an
   if (CoolstreamTime.toString.contains ("offline") && ShellyPlugS_05_Proxy.state==ON) { // offline = Satreceiver ist nicht hochgefahren //am Denon hängt noch der Switch
        ShellyPlugS_06.sendCommand(OFF)                    // schalte ab wenn CoolstreamTime "offline" behinhaltet
        logInfo("Coolstream Startup Check","Coolstream offline, schalte noch mal ab.")
        Thread::sleep(10000)
        ShellyPlugS_06.sendCommand(ON)
        logInfo("Coolstream Startup Check","Coolstream offline, schalte noch mal ein.")
        }
    ])

end
Satreceiver wird eingeschaltet.
Danach startet ein 180 sek. Timer. Jetzt hat der Satreceiver genug Zeit um sauber hoch zu Fahren.
Wenn das passiert ist hat das Item "CoolstreamTime" nicht mehr den Inhalt "offline" und es passiert nichts mehr weiter.
Fallls aber nach ablauf der 180 sek. der Satreceiver nicht sauber hoch gefahren ist wird er wieder abgeschaltet und nach 10 Sek wieder eingeschaltet.
Meistens fährt die Kiste dann beim zweiten Anlauf sauber hoch.
- OpenHab 2.4
#PWRUP

Benutzeravatar
udo1toni
Beiträge: 15269
Registriert: 11. Apr 2018 18:05
Answers: 245
Wohnort: Darmstadt

Re: Satreceiver Startup Check

Beitrag von udo1toni »

Jedoch ist die „Lösung“ mit dem Thread::sleep() sehr unschön.

Am iPad macht das jetzt keinen Spaß, den Code zu schreiben...


Gesendet von iPad mit Tapatalk
openHAB4.3.6 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

Benutzeravatar
PeterA
Beiträge: 1106
Registriert: 8. Feb 2019 12:12
Answers: 13

Re: Satreceiver Startup Check

Beitrag von PeterA »

Ja das Thread Sleep gefällt mir auch nicht.
Leider habe ich es nicht hinbekommen einen zweiten Timer zu schreiben
- OpenHab 2.4
#PWRUP

Benutzeravatar
udo1toni
Beiträge: 15269
Registriert: 11. Apr 2018 18:05
Answers: 245
Wohnort: Darmstadt

Re: Satreceiver Startup Check

Beitrag von udo1toni »

Du brauchst keinen zweiten Timer. Stattdessen schaust Du im Timer nach, ob die Steckdose an ist. Ist das der Fall, bist Du im „Ausschalttimer“ und schaltest die Steckdose aus. Anschließend planst Du denselben (!) Timer mittels theTimer.reschedule(now.plusSeconds(10)) neu.
Ist die Steckdose hingegen aus, so musst Du Dich im „Einschalttimer“ befinden und schaltest entsprechend die Steckdose ein.


Gesendet von iPad mit Tapatalk
openHAB4.3.6 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

Benutzeravatar
PeterA
Beiträge: 1106
Registriert: 8. Feb 2019 12:12
Answers: 13

Re: Satreceiver Startup Check

Beitrag von PeterA »

Ah ok, das mit dem reschedule hatte ich schon versucht.
Ging aber irgendwie nicht, war auch schon spät :)

Zwischenzeitlich ist mir aber noch ein gravierender Nachteil dieser Rule eingefallen:

Das kann ja zu einer Dauerschleife werden falls der Receiver überhaupt nicht Startet
bzw. die Netzwerkverbindung nicht funktioniert usw.

Eigentlich wäre es besser das ganze nach z.B. max. 3 Versuchen abzubrechen und dann z.B. ne Push Nachricht zu versenden.

Geht so was ?
- OpenHab 2.4
#PWRUP

Benutzeravatar
udo1toni
Beiträge: 15269
Registriert: 11. Apr 2018 18:05
Answers: 245
Wohnort: Darmstadt

Re: Satreceiver Startup Check

Beitrag von udo1toni »

Selbstverständlich :)


Gesendet von iPad mit Tapatalk
openHAB4.3.6 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

Antworten