[gelöst] Octoprint nach beendeten 3D-Druck ausschalten

Begonnen von FischFuss, 21 März 2020, 10:03:05

Vorheriges Thema - Nächstes Thema

FischFuss

Hallo zusammen,
ich habe ein kleines Problem, komme aber einfach nicht dahinter:

Ich möchte meinen Raspberry Pi mit Octoprint nach beendeten 3D-Druck herunterfahren und per Tasmota Steckdose ausschalten. Das Runterfahren nach dem Druck ist über das Octoprint Plugin "automatic shutdown" realisiert.

Nun zum FHEM: ich habe die Module "Octoprint" und die Tasmoto Steckdose "Ender3 Schalter". Nach dem Herunterfahren wechselt beim "Octoprint" das Reading "online" von 'true' zu 'false'.
Nun möchte ich also wenn [Octoprint:online] = false und [Ender3 Schalter] eq "on" die Steckdose ausschalten und habe das so versucht:

define Ender3_Aus DOIF ([Octoprint:online] = false and [Steckdose.01] eq "on") (set Steckdose.01=on off)

Leider funktioniert das nicht, warscheinlich habe ich das DOIF einfach nicht richtig formuliert. Kann mir vielleicht jemand auf die Sprünge helfen?

Vielen Dank für Eure Hilfe

Damian

Zitat von: FischFuss am 21 März 2020, 10:03:05
Hallo zusammen,
ich habe ein kleines Problem, komme aber einfach nicht dahinter:

Ich möchte meinen Raspberry Pi mit Octoprint nach beendeten 3D-Druck herunterfahren und per Tasmota Steckdose ausschalten. Das Runterfahren nach dem Druck ist über das Octoprint Plugin "automatic shutdown" realisiert.

Nun zum FHEM: ich habe die Module "Octoprint" und die Tasmoto Steckdose "Ender3 Schalter". Nach dem Herunterfahren wechselt beim "Octoprint" das Reading "online" von 'true' zu 'false'.
Nun möchte ich also wenn [Octoprint:online] = false und [Ender3 Schalter] eq "on" die Steckdose ausschalten und habe das so versucht:

define Ender3_Aus DOIF ([Octoprint:online] = false and [Steckdose.01] eq "on") (set Steckdose.01=on off)

Leider funktioniert das nicht, warscheinlich habe ich das DOIF einfach nicht richtig formuliert. Kann mir vielleicht jemand auf die Sprünge helfen?

Vielen Dank für Eure Hilfe

Bei Steckdose verwendest du die korrekte Syntax, bei Octoprint aber nicht. Warum nicht?

Beides sind Readings, die eine Zeichenkette beinhalten. Es ist unerheblich ob dort "on" drin steht oder "false".

Wie kommst du auf diese Syntax: set Steckdose.01=on off

Entweder du liest in falschen Quellen oder du denkst dir selber etwas aus. Leider haben wir noch keine KI in fhem, die die eigene Syntax der User korrigiert ;)
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

FischFuss

Vielen Dank für die Antwort,
ich habe als erstes versucht es mit Hilfe der Wiki hinzubekommen, nachdem das nicht funktioniert hat, habe ich hier im Forum gelesen und diverse Szenarien probiert. Letztendlich ist dann das dabei rausgekommem  :o

Und auch auf die Gefahr hin das ich mich blamiere habe ich dann hier gepostet, nicht um mir sagen zu lassen das ich etwas falsch gemacht habe (das weis ich ja selber), sondern damit mir evtl jemand sagt wie es richtig aussehen muss  ;)

Damian

Auch bei DOIF, wie in jeder Programmiersprache, musst du dich strikt an die vorgegebene Syntax halten. Oder besser mit Worten beschreiben, was du vorhast.

Vermutlich meinst du: ([Octoprint:online] eq "false" and [Steckdose.01] eq "on") (set Steckdose.01 off)

Falls du nach etwas FILTERN willst (Steckdose.01=...), dann ist das hier beschrieben: https://fhem.de/commandref_DE.html#devspec
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Frank_Huber

Ich würde das ausschalten auch noch etwas verzögern,
Wenn Octoprint offline geht ist der Pi noch lange nicht fertig mit runterfahren.

Gesendet von meinem S68Pro mit Tapatalk


MadMax-FHEM

Kann die Steckdose auch die Leistung messen!?

Ich habe meinen PI an einer Leistungsmessdose hängen, den fahre ich per shutdown runter und wenn dann entsprechend wenig Leistung gemessen wird, dann schaltet "sie sich" aus...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

FischFuss

Erstmal vielen Dank an Damian! Das hat dann so funktioniert wie Du es geschrieben hast.  :D

Ich habe das Ausschalten tatsächlich noch um 120 Sekunden verzögert, nicht nur um den Raspi nach genügend Zeit zu geben herunterzufahren, sondern auch um ihn zeit zu geben zu starten und online zu gehen  ;)

So funktioniert das ganze schon mal.


@MadMax-FHEM: Ich habe eine "Gosund SP1" - die kann tatsächlich Strom messen. Wie sieht das bei Dir aus?

MadMax-FHEM

Zitat von: FischFuss am 21 März 2020, 11:38:40
@MadMax-FHEM: Ich habe eine "Gosund SP1" - die kann tatsächlich Strom messen. Wie sieht das bei Dir aus?

Klar...


define nPiOff notify Steckdose_Buero_SchreibTisch_RasPI_Pwr.power:.* {if($EVTPART1 > 2.6){fhem("set Steckdose_Buero_SchreibTisch_RasPI_Sw off")}}


Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

FischFuss

Vielen Dank Joachim,
das ist pearl, nicht wahr? Das macht die Sache für mich nicht leichter  :-\
Da mir Deine Variante mit der Leistungserkennung mehr gefällt wie meine, habe ich noch ein bisschen gesucht und habe das jetzt folgendermaßen realisiert:

define Ender3_Aus DOIF ([Steckdose.01:ENERGY_Current] > 0.001 and [Steckdose.01:ENERGY_Current] < 0.025) (set Steckdose.01 off)

Ist schon getestet und funktioniert.
Vielen Dank an alle und noch mal Entschuldigung das ich mich so blöd anstelle. Leider habe ich viel zu wenig Zeit mich intensiver mit FHEM zu beschäftigen. Und immer wenn etwas Neues zu meiner Homeautomatisierung hinzu kommt, fange ich quasi immer wieder bei Null an  ::)

Viele Grüße

MadMax-FHEM

Gerne.

Was für dich Perl ist, ist für mich DOIF ;)

Bevor ich da mit den ganzen Attributen usw. etwas umsetzte ("quasi programmiere")...
...programmiere ich das lieber in Perl... ;)

Aber soviel Perl war da ja gar nicht drin ;)

Dann kannst du ja ein [gelöst] vor deinen ersten Post packen...

Dann viel Spaß weiterhin!

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Damian

Zitat von: FischFuss am 21 März 2020, 16:16:27
Vielen Dank Joachim,
das ist pearl, nicht wahr? Das macht die Sache für mich nicht leichter  :-\
Da mir Deine Variante mit der Leistungserkennung mehr gefällt wie meine, habe ich noch ein bisschen gesucht und habe das jetzt folgendermaßen realisiert:

define Ender3_Aus DOIF ([Steckdose.01:ENERGY_Current] > 0.001 and [Steckdose.01:ENERGY_Current] < 0.025) (set Steckdose.01 off)

Ist schon getestet und funktioniert.
Vielen Dank an alle und noch mal Entschuldigung das ich mich so blöd anstelle. Leider habe ich viel zu wenig Zeit mich intensiver mit FHEM zu beschäftigen. Und immer wenn etwas Neues zu meiner Homeautomatisierung hinzu kommt, fange ich quasi immer wieder bei Null an  ::)

Viele Grüße

Wir sind ja hier im Anfänger-Board, da darf man "dumme" Fragen stellen :)

Und die ersten selbstständigen Schritte scheinen auch schon zu klappen.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF