Modul für Kodi (ehemals 70_XBMC)

Begonnen von vbs, 02 Februar 2017, 23:11:10

Vorheriges Thema - Nächstes Thema

thorschtn

NUC - FHEM & HA
MapleCUN, Homematic, 433MHz, AB440, 1-Wire Bewässerung & Pool, Jarolift (Signalduino), Signal Messenger, Denon AVR, LG WebOS, AmazonEcho, Jura S90 (ESP8266), Sonoff, Xiaomi Mii Sauger, Worx SO500i

FHEM-Wohnung

#76
Hi vielen Dank :)

Ich habe auf meinem Pi Kodi mit  Hyperion (als Ambilight) am laufen. In den Favoriten haben ich eine Quellenauswahl welche Quelle das Ambilight benutzen soll.

<favourites>
    <favourite name="Ambilight für Kodi aktivieren" thumb="http://powerpi.de/wp-content/uploads/powerpi/powerpi_ambi_thumb_kodi.jpg">System.Exec(&quot;/storage/.kodi/userdata/hyperion_kodi_aktivieren.sh&quot;)</favourite>
    <favourite name="Ambilight für externe Geräte aktivieren" thumb="http://powerpi.de/wp-content/uploads/powerpi/powerpi_ambi_thumb_hdmi.jpg">System.Exec(&quot;/storage/.kodi/userdata/hyperion_grabber_aktivieren.sh&quot;)</favourite>
    <favourite name="Ambilight TV aktivieren" thumb="http://powerpi.de/wp-content/uploads/powerpi/powerpi_ambi_thumb_kodi.jpg">System.Exec(&quot;/storage/.kodi/userdata/hyperion_scart_aktivieren.sh&quot;)</favourite>
    <favourite name="Ambilight ausschalten" thumb="http://powerpi.de/wp-content/uploads/powerpi/powerpi_ambi_thumb_off.jpg">system.exec(&quot;/storage/.kodi/userdata/hyperion_beenden.sh&quot;)</favourite>
</favourites>



Nun würde ich gerne mit FHEM die Quelle ändern können. Gibt es eine Möglichkeit über FHEM an Kodi diesen Befehl z.B. auszugeben?:
system.exec(&quot;/storage/.kodi/userdata/hyperion_beenden.sh&quot;

Danke :)

Ellert

Zitat von: vbs am 28 Oktober 2017, 11:15:06
Ich hab hier mal eine Version gebastelt mit einem Attribut "jsonResponseReading". Wenn man das auf 1 setzt, dann bekommt man ein Reading "jsonResponse", welches immer die letzte JSON-Antwort enthält und auch bei Änderungen ein Event wird. Also man sollte dann damit in FHEM auf beliebige JSON-Antworten reagieren können.
In der eingecheckten Version wird jsonResponseReading nur in der Doku erwähnt, das Attribut erscheint bei mir nicht, im Quelltext auch nicht.

vbs

Vielen Dank für den Hinweis! Sorry, hab die Doku offenbar noch in der alten Version hinzugefügt und dann eingecheckt. Hab es jetzt korrigiert.

vbs

@FHEM-Wohnung
Also ich glaube, ich hab eine Idee, was du mal versuchen kannst: Du kannst mit 'exec' verschiedene Input-Actions an Kodi senden (https://fhem.de/commandref.html#KODI). Und über die remote.xml in Kodi kannst du ja bestimmen, was bei einer Action passieren soll.
Du kannst da z.B. auch deine System.Exec-Sachen eintragen wie hier beschrieben:
http://www.dxsdata.com/de/2015/02/openelec-kodi-modify-volume-adjustment-steps/

Ich weiß aber nicht genau, ob du jetzt nur eine vorhandene Action "missbrauchen" kannst, oder ob du auch eigene Actions per 'exec' ansteuern kannst. Ich befürchte aber ersteres.


pula

#80
Hallo,

tolles Modul, vielen Dank! Läuft seit langem bei mir sehr stabil.
Beschäftige mich grade mit der tabletui und würde gerne das Logo des aktuellen PVR-Channels anzeigen.
Gibt es irgend eine Chance, das in ein Reading zu packen? Notfalls nur den Filenamen des Logos?

Cheers,

Pula
/edit: ich honk... steht ja eh im reading thumbnail...
fhem (debian auf proxmox), HM-LAN und wired, MySensors, FritzBoxes, Kodi, vdr, Onkyo, squeezeplayers, nanoCUL, wifilight (Ethernet-Bridge), Heizungssteuerung (python/vncdotool), doorpi, ESP/Arduinos/MQTT, Alexa, HomeConnect, Sonoff/Tasmota, espRGBWW, esphome, Telegram

pula

Hi nochmal,

jetzt aber doch:
Gibt es ein reading, aus dem man entnehmen kann, in welchem modus (pvr/video/music etc) kodi momentan läuft?
bin gerade dabei, ein widget für tabletui zu erstellen, da wäre das sehr hilfreich...

Cheers,
Pula
fhem (debian auf proxmox), HM-LAN und wired, MySensors, FritzBoxes, Kodi, vdr, Onkyo, squeezeplayers, nanoCUL, wifilight (Ethernet-Bridge), Heizungssteuerung (python/vncdotool), doorpi, ESP/Arduinos/MQTT, Alexa, HomeConnect, Sonoff/Tasmota, espRGBWW, esphome, Telegram

vbs

Guck dir mal das Reading "type" an. Bin aber nicht sicher, ob man damit PVR-Betrieb identifizieren kann.

MadMax-FHEM

Zitat von: pula am 29 November 2017, 21:40:38
Hi nochmal,

jetzt aber doch:
Gibt es ein reading, aus dem man entnehmen kann, in welchem modus (pvr/video/music etc) kodi momentan läuft?
bin gerade dabei, ein widget für tabletui zu erstellen, da wäre das sehr hilfreich...

Cheers,
Pula

Bei type hab ich entweder channel (dann schaue ich TV) oder unknown drin stehen...

Habe es bei mir über curentMedia gelöst (vielleicht nicht die "tolle" Art aber für mich ok):


  if($CurrentMedia =~ m/pvr/)
  {
    return "PVR";
  }
  elsif($CurrentMedia =~ m/google/)
  {
    return "YouTube";
  }


Da ich nicht Musik über Kodi höre weiß ich nicht, ob sich da auch was finden lässt...

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)

pula

Zitat von: vbs am 29 November 2017, 21:44:51
Guck dir mal das Reading "type" an. Bin aber nicht sicher, ob man damit PVR-Betrieb identifizieren kann.

Danke - schaut gut aus. Bei PVR-Betrieb steht in dem reading "channel" :-)
fhem (debian auf proxmox), HM-LAN und wired, MySensors, FritzBoxes, Kodi, vdr, Onkyo, squeezeplayers, nanoCUL, wifilight (Ethernet-Bridge), Heizungssteuerung (python/vncdotool), doorpi, ESP/Arduinos/MQTT, Alexa, HomeConnect, Sonoff/Tasmota, espRGBWW, esphome, Telegram

m8ichael

Hallo zusammen,

läuft bei euch das Modul mit der Kodi-Version 17.5? Nutze das Modul nun schon seit langer Zeit und seit dem Update auf die neue Kodi-Version bekomme ich keine Events mehr zu sehen.

Habe das Modul wie folgt eingebunden:


define wz_KODI KODI <ip>:9090 tcp <user> <Passwort>
attr wz_KODI alias Mediaplayer
attr wz_KODI devStateIcon opened:rc_GREEN:on disconnected:rc_RED:off
attr wz_KODI event-on-change-reading .*
attr wz_KODI group Multimedia
attr wz_KODI icon it_server
attr wz_KODI room Wohnzimmer
attr wz_KODI updateInterval 30


Der Zugriff per Browser auf Kodi funktioniert - aber eben nicht per FHEM...  :(

Viele Grüße

Michael

vbs


m8ichael

Hi!

Zitat von: vbs am 03 Dezember 2017, 16:26:09
Du musst die Fernsteuerung aktivieren in Kodi:
http://kodi.wiki/view/Smartphone/tablet_remotes

Ja, der Zugriff ist aktiviert. Ich kann sowohl per Browser und z. B. per Android-App (Kore) auf Kodi zugreifen und bekomme dort auch die Events. Was mich halt irritiert ist, dass ein neuer Zugriff per klassischem Zugriff auch in Kodi angezeigt wird, nicht aber, wenn der Zugriff per FHEM erfolgt... :-(

Viele Grüße

Michael

vbs

Zitat von: m8ichael am 03 Dezember 2017, 17:14:23
Was mich halt irritiert ist, dass ein neuer Zugriff per klassischem Zugriff auch in Kodi angezeigt wird, nicht aber, wenn der Zugriff per FHEM erfolgt... :-(
Verstehe ich nicht so ganz muss ich sagen. Kannst du das etwas genauer beschreiben? Und bitte Device-List und Debug-Log anhängen.

m8ichael

#89
Hi,

Zitat von: vbs am 03 Dezember 2017, 17:57:05
Verstehe ich nicht so ganz muss ich sagen. Kannst du das etwas genauer beschreiben? Und bitte Device-List und Debug-Log anhängen.

hier mal ein Device-List:


   DEF        10.20.1.36:9090 tcp <user> <pw>
   DeviceName 10.20.1.36:9090
   FD         63
   Host       10.20.1.36
   LAST_RECV  1512321546
   NAME       wz_KODI
   NR         174
   NextID     112
   PARTIAL
   Port       9090
   Protocol   tcp
   STATE      opened
   TYPE       KODI
   PendingPlayerCMDs:
     102:
       method     Player.GetProperties
       params:
         properties:
           time
           totaltime
           repeat
           shuffled
           speed
           partymode
     105:
       method     Player.GetProperties
       params:
         properties:
           time
           totaltime
           repeat
           shuffled
           speed
           partymode
     108:
       method     Player.GetProperties
       params:
         properties:
           time
           totaltime
           repeat
           shuffled
           speed
           partymode
     111:
       method     Player.GetProperties
       params:
         properties:
           time
           totaltime
           repeat
           shuffled
           speed
           partymode
     12:
       method     Player.GetProperties
       params:
         properties:
           time
           totaltime
           repeat
           shuffled
           speed
           partymode
     15:
       method     Player.GetProperties
       params:
         properties:
           time
           totaltime
           repeat
           shuffled
           speed
           partymode
     18:
       method     Player.GetProperties
       params:
         properties:
           time
           totaltime
           repeat
           shuffled
           speed
           partymode
     21:
       method     Player.GetProperties
       params:
         properties:
           time
           totaltime
           repeat
           shuffled
           speed
           partymode
     24:
       method     Player.GetProperties
       params:
         properties:
           time
           totaltime
           repeat
           shuffled
           speed
           partymode
     27:
       method     Player.GetProperties
       params:
         properties:
           time
           totaltime
           repeat
           shuffled
           speed
           partymode
     3:
       method     Player.GetProperties
       params:
         properties:
           time
           totaltime
           repeat
           shuffled
           speed
           partymode
     30:
       method     Player.GetProperties
       params:
         properties:
           time
           totaltime
           repeat
           shuffled
           speed
           partymode
     33:
       method     Player.GetProperties
       params:
         properties:
           time
           totaltime
           repeat
           shuffled
           speed
           partymode
     36:
       method     Player.GetProperties
       params:
         properties:
           time
           totaltime
           repeat
           shuffled
           speed
           partymode
     39:
       method     Player.GetProperties
       params:
         properties:
           time
           totaltime
           repeat
           shuffled
           speed
           partymode
     42:
       method     Player.GetProperties
       params:
         properties:
           time
           totaltime
           repeat
           shuffled
           speed
           partymode
     45:
       method     Player.GetProperties
       params:
         properties:
           time
           totaltime
           repeat
           shuffled
           speed
           partymode
     48:
       method     Player.GetProperties
       params:
         properties:
           time
           totaltime
           repeat
           shuffled
           speed
           partymode
     51:
       method     Player.GetProperties
       params:
         properties:
           time
           totaltime
           repeat
           shuffled
           speed
           partymode
     54:
       method     Player.GetProperties
       params:
         properties:
           time
           totaltime
           repeat
           shuffled
           speed
           partymode
     57:
       method     Player.GetProperties
       params:
         properties:
           time
           totaltime
           repeat
           shuffled
           speed
           partymode
     6:
       method     Player.GetProperties
       params:
         properties:
           time
           totaltime
           repeat
           shuffled
           speed
           partymode
     60:
       method     Player.GetProperties
       params:
         properties:
           time
           totaltime
           repeat
           shuffled
           speed
           partymode
     63:
       method     Player.GetProperties
       params:
         properties:
           time
           totaltime
           repeat
           shuffled
           speed
           partymode
     66:
       method     Player.GetProperties
       params:
         properties:
           time
           totaltime
           repeat
           shuffled
           speed
           partymode
     69:
       method     Player.GetProperties
       params:
         properties:
           time
           totaltime
           repeat
           shuffled
           speed
           partymode
     72:
       method     Player.GetProperties
       params:
         properties:
           time
           totaltime
           repeat
           shuffled
           speed
           partymode
     75:
       method     Player.GetProperties
       params:
         properties:
           time
           totaltime
           repeat
           shuffled
           speed
           partymode
     78:
       method     Player.GetProperties
       params:
         properties:
           time
           totaltime
           repeat
           shuffled
           speed
           partymode
     81:
       method     Player.GetProperties
       params:
         properties:
           time
           totaltime
           repeat
           shuffled
           speed
           partymode
     84:
       method     Player.GetProperties
       params:
         properties:
           time
           totaltime
           repeat
           shuffled
           speed
           partymode
     87:
       method     Player.GetProperties
       params:
         properties:
           time
           totaltime
           repeat
           shuffled
           speed
           partymode
     9:
       method     Player.GetProperties
       params:
         properties:
           time
           totaltime
           repeat
           shuffled
           speed
           partymode
     90:
       method     Player.GetProperties
       params:
         properties:
           time
           totaltime
           repeat
           shuffled
           speed
           partymode
     93:
       method     Player.GetProperties
       params:
         properties:
           time
           totaltime
           repeat
           shuffled
           speed
           partymode
     96:
       method     Player.GetProperties
       params:
         properties:
           time
           totaltime
           repeat
           shuffled
           speed
           partymode
     99:
       method     Player.GetProperties
       params:
         properties:
           time
           totaltime
           repeat
           shuffled
           speed
           partymode
   READINGS:
     2017-12-03 18:19:06   endcredits      0
     2017-12-03 18:19:06   partymode
     2017-12-03 18:19:06   playStatus      stopped
     2017-12-03 18:19:06   repeat
     2017-12-03 18:19:06   shuffle
     2017-12-03 18:19:06   speed
     2017-12-03 18:19:06   state           opened
     2017-12-03 18:19:06   system          wake
     2017-12-03 18:19:06   time
     2017-12-03 18:19:06   totaltime
Attributes:
   alias      Mediaplayer
   devStateIcon opened:rc_GREEN:on disconnected:rc_RED:off
   event-on-change-reading .*
   group      Multimedia
   icon       it_server
   room       Wohnzimmer
   sortby     10
   updateInterval 60
   userReadings endcredits { join("",ReadingsVal($name,"totaltime",0),ReadingsVal($name,"time",0)) =~ /(\d\d):(\d\d):(\d\d).(\d\d\d)(\d\d):(\d\d):(\d\d).(\d\d\d)/; return defined($3) ? (($1*60*60 + $2*60 + $3) - ($5*60*60 + $6*60 + $7) < 240 ? 1 : 0) : 0 }
   verbose    5


...und ein Debug-Log, wobei so richtig viel da nicht drin steht:


2017.12.03 18:29:17 4: KODI_Check
2017.12.03 18:29:17 3: KODI_CheckConnection: Connection lost! Last data from Kodi received 120 s ago
2017.12.03 18:29:17 1: 10.20.1.36:9090 disconnected, waiting to reappear (wz_KODI)
2017.12.03 18:29:18 4: KODI_Call: Sending: {"jsonrpc":"2.0","params":{"properties":["volume","muted","name","version"]},"method":"Application.GetProperties","id":139}
2017.12.03 18:29:18 5: SW: 7b226a736f6e727063223a22322e30222c22706172616d73223a7b2270726f70657274696573223a5b22766f6c756d65222c226d75746564222c226e616d65222c2276657273696f6e225d7d2c226d6574686f64223a224170706c69636174696f6e2e47657450726f70657274696573222c226964223a3133397d
2017.12.03 18:29:18 4: KODI_Call: Sending: {"id":140,"method":"GUI.GetProperties","params":{"properties":["skin","fullscreen","stereoscopicmode"]},"jsonrpc":"2.0"}
2017.12.03 18:29:18 5: SW: 7b226964223a3134302c226d6574686f64223a224755492e47657450726f70657274696573222c22706172616d73223a7b2270726f70657274696573223a5b22736b696e222c2266756c6c73637265656e222c2273746572656f73636f7069636d6f6465225d7d2c226a736f6e727063223a22322e30227d
2017.12.03 18:29:18 4: KODI_Call: Sending: {"jsonrpc":"2.0","method":"Player.GetActivePlayers","id":"141"}
2017.12.03 18:29:18 5: SW: 7b226a736f6e727063223a22322e30222c226d6574686f64223a22506c617965722e476574416374697665506c6179657273222c226964223a22313431227d
2017.12.03 18:29:18 4: KODI_UpdatePlayerItem
2017.12.03 18:29:18 4: KODI_UpdatePlayerItem - cancelled (disconnected or not playing)
2017.12.03 18:29:18 1: 10.20.1.36:9090 reappeared (wz_KODI)


Mit der Anzeige in Kodi meine ich, dass Kodi kurz anzeigt, wenn ein neues Gerät per remote auf Kodi zugreift (z. B. beim ersten Zugriff der Remote-App).

Wie gesagt, das Problem tritt erst auf, nachdem ich Kodi 17.5 installiert habe. Hatte zuvor jahrelang eine ältere Version (16) im Einsatz und nie Probleme mit den Events...

Vielen Dank!!

Viele Grüße

Michael