FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: misux am 01 November 2018, 11:38:28

Titel: (Erledigt) Vero 4k+ mit Fhem herunterfahren lasseen...
Beitrag von: misux am 01 November 2018, 11:38:28
Hi!

Hat jemand Ahnung oder eine Idee ob oder wie man per Fhem Befehl einen Mediaplayer Vero4K+ herunterfahren lassen kann?

Wäre richtig klasse wenn das irgendwie gehen würde!

Vielen Dank!
Titel: Antw:Vero 4k+ mit Fhem herunterfahren lasseen...
Beitrag von: Otto123 am 01 November 2018, 13:24:39
Hi,

ZitatOSMC is based on Debian which allows us to deliver a very powerful and expansive system.
Vero4k ist OSMC - Richtig?

also kannst Du per ssh von FHEM den Befehl schicken.

Gruß Otto
Titel: Antw:Vero 4k+ mit Fhem herunterfahren lasseen...
Beitrag von: misux am 01 November 2018, 18:10:22
Ja genau! Ich habe auch schon im OSMC Forum nachgefragt was ich denn senden müsste damit es aus geht. Habe auch eine Antwort bekommen und stehe da wie ein Depp ;D denn ich habe keine Ahnung wie ich das in ein DOIF einbinden soll...

Hier der Code vom OSMC Forum:

Zitatcurl --data-binary '{"jsonrpc":"2.0","method":"System.Shutdown","id":1}' -H 'content-type: application/json;' http://ip_of_your_osmc_device:port_of_your_www_interface_in_kodi]/jsonrpc

Mein Gedanke:

DOIF:
([LGTv:state] eq "off") (set VERO off CODE)

attr: do always

Könnte mir jemand helfen wie ich den Code in das DOIF einbinden muss... :D

Vielen Dank!
Titel: Antw:Vero 4k+ mit Fhem herunterfahren lasseen...
Beitrag von: schwatter am 01 November 2018, 18:27:12
In etwa so

Ein Dummy,

defmod OSMC dummy
attr OSMC  setList state:shutdown
attr OSMC webCmd state


der ein Notify aufruft,

defmod OSMC_Setup notify OSMC:shutdown {system("curl --data-binary '{"jsonrpc":"2.0","method":"System.Shutdown","id":1}' -H 'content-type: application/json;' http://ip_of_your_osmc_device:port_of_your_www_interface_in_kodi]/jsonrpc")}
Titel: Antw:Vero 4k+ mit Fhem herunterfahren lasseen...
Beitrag von: misux am 01 November 2018, 20:42:58
Vielen Dank! Aber geht das nicht mit DOIF? Habe alles mit DOIF realisiert und würde gerne dabei bleiben..
Titel: Antw:Vero 4k+ mit Fhem herunterfahren lasseen...
Beitrag von: Damian am 01 November 2018, 20:47:11
Zitat von: misux am 01 November 2018, 20:42:58
Vielen Dank! Aber geht das nicht mit DOIF? Habe alles mit DOIF realisiert und würde gerne dabei bleiben..

genauso:

DOIF (<deine Bedingung>) {system("curl --data-binary '{"jsonrpc":"2.0","method":"System.Shutdown","id":1}' -H 'content-type: application/json;' http://ip_of_your_osmc_device:port_of_your_www_interface_in_kodi]/jsonrpc")}
Titel: Antw:Vero 4k+ mit Fhem herunterfahren lasseen...
Beitrag von: Otto123 am 01 November 2018, 20:49:54
Versuch es erstmal in der FHEM Kommndozeile:
Schreib dies hier in ein Script
curl --data-binary '{"jsonrpc":"2.0","method":"System.Shutdown","id":1}' -H 'content-type: application/json;' http://ip_of_your_osmc_device:port_of_your_www_interface_in_kodi]/jsonrpc
Dann rufe folgendes auf:
"Dein Script"

Edit: ich schreib es trotzdem
Titel: Antw:Vero 4k+ mit Fhem herunterfahren lasseen...
Beitrag von: misux am 01 November 2018, 21:15:59
 :D

Krass! Werde es morgen testen... muss ins Bett, frühschicht ist furchtbar.... ;D
Titel: Antw:Vero 4k+ mit Fhem herunterfahren lasseen...
Beitrag von: misux am 06 November 2018, 20:47:40
HI!

Sorry habe es jetzt erst testen können und leider mit einem Error im DOIF. Leider weiß ich nicht was da falsch sein könnte... Kann sich das vielleicht bitte jemand anschauen?

Mein DOIF:

([TVTime:state] eq "off" or [KINOTime:state] eq "off") {system("curl --data-binary '{"jsonrpc":"2.0","method":"System.Shutdown","id":1}' -H 'content-type: application/json;' http://192.168.1.40:80/jsonrpc")}

Die Fehlermeldung im Reading:

Zitat{system("curl --data-binary '{"jsonrpc":"2.0","method":"System.Shutdown","id":1}' -H 'content-type: application/json;' http://192.168.1.40:80/jsonrpc")}: syntax error at (eval 165367) line 1, near ""curl --data-binary '{"jsonrpc"


Habe auch schon im OSMC Forum nachgefragt, und der Kollege von dem ich den Code habe hat leider auch keide Idee...

ZitatJust a stabb in the dark, but since the command curl in needs " in the system call, like {system("
then in the curl command there is an other set of ", which might break the system string?

Don't know how fhem works, if you can escape those other "?
Titel: Antw:Vero 4k+ mit Fhem herunterfahren lasseen...
Beitrag von: misux am 07 November 2018, 21:50:58
@ Damian

Hast du eine Idee was da das Problem sein könnte?  :-\
Titel: Antw:Vero 4k+ mit Fhem herunterfahren lasseen...
Beitrag von: Damian am 07 November 2018, 22:17:11
Zitat von: misux am 07 November 2018, 21:50:58
@ Damian

Hast du eine Idee was da das Problem sein könnte?  :-\

Mein System läuft unter Windows, daher kann ich es bei mir nicht testen.
Titel: Antw:Vero 4k+ mit Fhem herunterfahren lasseen...
Beitrag von: misux am 07 November 2018, 22:22:26
Oha...  :-\

Okay... Dann versuche ich es mit Otto123 Variante... Muss aber erstmal schauen wie ich einen Script erstelle... Denke das wird erst zum Wochenende was... Danke erstmal...
Titel: Antw:Vero 4k+ mit Fhem herunterfahren lasseen...
Beitrag von: Damian am 07 November 2018, 22:37:04
Das Problem sind mit Sicherheit die geschachtelten Anführungszeichen: ...("curl --data-binary '{"...

Daher dürfte das Auslagern helfen.
Titel: Antw:Vero 4k+ mit Fhem herunterfahren lasseen...
Beitrag von: misux am 10 November 2018, 17:27:42
Hallo Otto123 ;D

So ich versuche mich an deimer Lösung... und hänge etwas...

Zitat von: Otto123 am 01 November 2018, 20:49:54
Versuch es erstmal in der FHEM Kommndozeile:
Schreib dies hier in ein Script
curl --data-binary '{"jsonrpc":"2.0","method":"System.Shutdown","id":1}' -H 'content-type: application/json;' http://ip_of_your_osmc_device:port_of_your_www_interface_in_kodi]/jsonrpc
Dann rufe folgendes auf:
"Dein Script"

Edit: ich schreib es trotzdem

Ich habe nun ein Notify erstellt:

Internals:
   CFGFN     
   DEF        curl --data-binary '{"jsonrpc":"2.0","method":"System.Shutdown","id":1}' -H 'content-type: application/json;' http://192.168.1.40:80/jsonrpc
   NAME       MediaplayerPower
   NR         98188
   NTFY_ORDER 50-MediaplayerPower
   REGEXP     curl
   STATE      active
   TYPE       notify
   READINGS:
     2018-11-10 17:22:20   state           active
Attributes:


Nun hänge ich etwas wie ich mein script aufrufen soll...  :-\

Kannst mir etwas auf die Sprünge helfen?

Titel: Antw:Vero 4k+ mit Fhem herunterfahren lasseen...
Beitrag von: Otto123 am 10 November 2018, 17:43:44
Du sollst Deinen Text curl --data-binary '{"jsonrpc":"2.0","method":"System.Shutdown","id":1}' -H 'content-type: application/json;' http://192.168.1.40:80/jsonrpc in eine Script Datei schreiben.
Also von mir aus in die Datei /opt/fhem/MeinScript.sh

Dann rufst Du im notify den Befehl "bash /opt/fhem/MeinScript.sh" auf.
Den gleichen Befehl kannst Du auch einfach in der FHEM Kommandozeile aufrufen.

Du kannst Dein jetziges notify so ändern (Ob der Trigger/Event so stimmt weiß ich nicht!):
defmod MediaplayerPower notify  LGTv:off "bash /opt/fhem/MeinScript.sh"

Gruß Otto
Titel: Antw:Vero 4k+ mit Fhem herunterfahren lasseen...
Beitrag von: misux am 10 November 2018, 17:48:31
achso... ::) jetzt kapiert..

Aber es harpert schon in der Kommandozeile...

das eingetragen und ab die Post mit dem Ergebnis..
curl --data-binary '{"jsonrpc":"2.0","method":"System.Shutdown","id":1}' -H 'content-type: application/json;' http://192.168.1.40:80/jsonrpc
Zitat
Unknown command curl, try help.
Unknown command ', try help.
Titel: Antw:Vero 4k+ mit Fhem herunterfahren lasseen...
Beitrag von: Otto123 am 10 November 2018, 17:53:22
Du hast jetzt den curl Befehl in der FHEm Kommandozeile? Wir reden komplett aneinander vorbei  :'(
Titel: Antw:Vero 4k+ mit Fhem herunterfahren lasseen...
Beitrag von: misux am 10 November 2018, 17:57:51
 :o Oh mann  ich doof... okay..

1. script.sh erstellen

2. Befehl zum starten des scrypten in die Kommandozeile eingeben! ::)

OKAY! Muss meinen Sohnemann abholen und daaaaaann heute Abend klappt das bestimmt!!!

Vielen Dank! ;)
Titel: Antw:Vero 4k+ mit Fhem herunterfahren lasseen...
Beitrag von: misux am 10 November 2018, 20:52:39
JUHU! es hat geklappt! Jedenfalls mit den Kommandozeile und dem Skript!

HAbe versucht das ganze in ein  DOIF zu packen... leider klappt das nicht.

([TVTime:state] eq "off" or [KINOTime:state] eq "off") ("bash /opt/fhem/Mediaplayer.sh")

auch das probiert...

([TVTime:state] eq "off" or [KINOTime:state] eq "off") ({system(" /opt/fhem/Mediaplayer.sh")})

wie müsste denn der richtige Code für das DOIF lauten?




Titel: Antw:Vero 4k+ mit Fhem herunterfahren lasseen...
Beitrag von: Otto123 am 11 November 2018, 19:00:22
Dazu kann man so nix sagen, die zweite Variante kann so funktionieren muss aber nicht. Die erste Variante ist eher richtig, dazu bräuchte man aber ein list um zu sehen was nicht geht. Ich bin nicht sicher
Versuch das DOIF doch erstmal einfacher, eine Bedingung und vor allem eine Alternative. So kann es sein, dass es im Status hängt und do always nötig wird.

Mit notify wäre es einfacher, etwa so: (nicht getestet)
(TVTime|KINOTime):off "bash /opt/fhem/Mediaplayer.sh"

Falls beide einen entsprechenden Event liefern, kannst Du im Event Monitor sehen.

Gruß Otto
Titel: Antw:Vero 4k+ mit Fhem herunterfahren lasseen...
Beitrag von: misux am 11 November 2018, 20:45:46
HI!

Mit dem Notify klappt das, ja... Aber ich möchte soweit wie möglich mit DOIFS arbeiten (damit kann ich am besten umgehen auch wenn es eher schlecht als recht ist)

Die Bedingungen machen mir keine Probleme oder Sorgen sondern der ausführungsteil im DOIF!

Ich wein nicht wie der Ausführungsteil im doif aussehen soll damit das DOIF mit die Bash Datei "startet/ausführt"...

:-\
Titel: Antw:Vero 4k+ mit Fhem herunterfahren lasseen...
Beitrag von: misux am 11 November 2018, 21:08:06
Hah! Ich habs aber mit einem kleinen Problem...

([TVTime:state] eq "off" and [KINOTime:state] eq "off") ("bash /opt/fhem/Mediaplayer.sh") (set Mediaplayer off)
DOELSEIF
([LGTv:input] eq "AVR" or [TVTime:state] eq "on" or [KINOTime:state] eq "on") (set Mediaplayer on)


attr. wait 0:60:0
attr. do Always

Das funktioniert soweit, allerdings ignoriert er das Wait für (set Mediaplayer off)...

Hab ich das iegrndwie falsch gesetzt?

Er soll sofort die Bash Datei ausführen, 60sek. später (set Mediaplayer off) setzen... (Mediaplayer ist ein Relais das den Madiaplayer vom Netz trennt nachdem er mit der bash Datei runtergefahren wurde...)
Titel: Antw:Vero 4k+ mit Fhem herunterfahren lasseen...
Beitrag von: Otto123 am 11 November 2018, 21:33:23
ZitatNun kann mit dem wait-Attribut nicht nur für den Beginn der Sequenz, sondern für jeden Klammerblock eine Verzögerung, getrennt mit Komma, definieren werden,
Titel: Antw:Vero 4k+ mit Fhem herunterfahren lasseen...
Beitrag von: misux am 11 November 2018, 21:41:51
 :-X
Ja... ist mir auch aufgefallen... ;D

Nun funktioniert es! VIELEN Dank an euch!!!

([TVTime:state] eq "off" and [KINOTime:state] eq "off") ("bash /opt/fhem/Mediaplayer.sh") (set Mediaplayer off)
DOELSEIF
([TVTime:state] eq "on" or [KINOTime:state] eq "on") (set Mediaplayer on)


attr: 0,60:0
attr: do always

DAmit wird der Mediaplayer heruntergefahren sobald meine Dummys TVTime und KINOTime "off" sind und 60 Sek später wird der Player vom Netz getrennt.

Ist TVTime oder KinoTime "on" wird der Player wieder ans Stromnetz geschlossen und bootet sauber hoch.

TOP! 8)
Titel: Antw:(Erledigt) Vero 4k+ mit Fhem herunterfahren lasseen...
Beitrag von: Otto123 am 12 November 2018, 08:55:46
Moin,

ich glaube nicht, dass Du für Deine Funktion wirklich do always benötigst.  Das muss auch ohne funktionieren.

Ich wäre mir sogar nicht ganz sicher ob es kontraproduktiv ist:
Falls TVTime und KINOTime weitere Events liefern wird jedesmal das DOIF getriggert und damit werden unnötige off bzw. on Befehle gesendet die ins Leere laufen, da der Zustand eigentlich schon erreicht ist.
Titel: Antw:(Erledigt) Vero 4k+ mit Fhem herunterfahren lasseen...
Beitrag von: misux am 12 November 2018, 18:50:25
okay... Teste ich mal aus...