Squeezebox Modul - erste Version

Begonnen von bugster_de, 17 Dezember 2013, 22:12:10

Vorheriges Thema - Nächstes Thema

hermann1514

Hallo,

Ich möchte gerne, wenn ich meine Squeezebox einschalte, dass mein Küchenlicht eingeschaltet wird. Jedoch sehe ich im Eventlog keinen Eintrag wenn ich die Squeezebox am Gerät  einschalte. Wenn ich über die Weboberfläche einschalte wird ein Event erzeugt.
Da kein Event beim direkten einschalten gesendet wird kann ich auch kein Notify einsetzen.

Gibt es eine Möglichkeit ein Event beim einschalten zu erzeugen?

Danke
Gruß Hermann

FHEm2005

Hallo Herrmann,
es wird ein event erzeugt beim Ein- bzw Ausschalten. Bei mir sieht dieses EVENT so aus:

2016-06-14 08:19:47 SB_PLAYER SB3.Buero off
2016-06-14 08:19:47 SB_PLAYER SB3.Buero power: off
...
...
2016-06-14 08:21:15 SB_PLAYER SB3.Buero on
2016-06-14 08:21:15 SB_PLAYER SB3.Buero power: on


Das READING power ändert sich entsprechend dem Status des Players. Du musst auf den Status von power prüfen.

Wie sieht das Attribut event-on-change-reading bei Dir aus?

Gruß Eberhard
Raspi3: FHEM, CULV3 (V1.61), EnOcean Pi 868, nanoCUL433, HUE-Bridge; Raspi4: Node-red, MQTT, Gaszähler auslesen mit ESP32-CAM

hermann1514

Hallo Eberhard,

also standardmäßig wurde im Event nichts angezeigt.

Ich habe dann einmal die Attribute folgendermassen gesetzt:

statusRequestInterval: 10 (war vorher nicht gesetzt)
donotnotify: false (war vorher auf true)
event-on-change-reading: power (war vorher nicht gesetzt)

Nun erscheint im Evenlog auf die Aktion wenn die Box ein- bzw. ausgeschaltet wird.

Habe ich da nun zuviel konfiguriert? Sind alle 3 Attribute richtig gesetzt oder kann ich da noch wieder was ändern?
Muss der Statusrequestinterval gesetzt werden?

Wie müsste denn das Notify aussehen wenn ich dann den Powerstatus "ON" abfrage?
define xxxxx NOTIFY sb_kueche:power????

Danke.
Gruß
Hermann

kvo1

Hallo Herrmann,

ZitatWie müsste denn das Notify aussehen wenn ich dann den Powerstatus "ON" abfrage?
define xxxxx NOTIFY sb_kueche:power????

ev. so, geht bestimmt noch eleganter !

define SB_on-Licht_on notify sb_kueche {\
if (ReadingsVal("sb_kueche", "power", "off") eq "on"){\
   fhem("set Licht_kueche on");;\
}\
}


Licht_kueche  mußt du mit deinem device ersetzen !
RPi1: mit CUL: HM-CC-RT-DN,HM-ES-PMSw1-Pl,HM-LC-BL1-FM,HM-LC-Bl1PBU-FM,HM-LC-SW1-PL2,HM-SCI-3-FM,HM-SEC-SC-2,KFM-Sensor
RPi2: Viessmann(optolink) mit 99_VCONTROL.pm,
Cubietruck: Wheezy / Apache / Owncloud
Cubietruck: Armbian(Jessie) / fhem 5.7 / LMS 7.9
RPi3: (Test) mit 7" Touch  &  HM-MOD-RPI-PCB

TeeVau

Hallo zusammen,

mal eine Frage am Rande: Hat noch jemand das Problem, dass der Modul für den SB_SERVER zum blockieren/freeze von FHEM führt? Das scheint sich irgendwie vor ein paar Monaten bei mir eingeschlichen zu haben. Konnte bis lang jedoch nur den SB_SERVER als Verursachen entdecken und habe sonst noch nichts unternommen.
Habe auch eigentlich gar nichts an der Installation vom LMS geändert. Gibt es neben den attr Einstellungen noch etwas, was zum blockieren führen kann?

Die Freezes werden auch immer größer. Erst fängt es mit 1 Sekunde an und je länger FHEM läuft (hier sind es Tage und Wochen) desto länger werden die Freezes. So ab 10 Sekunden nervt mich die Verzögerung dann so, dass ich einen restart von FHEM mache. Dann ist erst einmal wieder ruhe. Wollte dem jetzt aber doch mal genauer auf die Schliche kommen.

Grüße, Tobias
FHEM 5.8 dev (virtualisiert) / FBF 7390 (CUL 868MHz V 1.51 / panStick (AVR1))
FS20: fs20di,fs20pira,fs20sm8,fs20st2,fs20tfk,fs20ue1,fs20ws1
panStamp (AVR1): RGB Multi von ext23, 1W-DSxxxx, I/O Sketch, Spritzpumpe
Multimedia: Panasonic TV (VIERA), Kodi, Yamaha RX-V781, LMS
Sonstiges: XiaomiFlowerSen

hermann1514

Hay kvo1,

Danke.

Zitat von: kvo1 am 14 Juni 2016, 23:42:08
Hallo Herrmann,

ev. so, geht bestimmt noch eleganter !

define SB_on-Licht_on notify sb_kueche {\
if (ReadingsVal("sb_kueche", "power", "off") eq "on"){\
   fhem("set Licht_kueche on");;\
}\
}


Licht_kueche  mußt du mit deinem device ersetzen !


Ich habe nun aber das ganze mit einem DOIF probiert und klappt ganz gut:

([06:00-09:30] and [SB_Kueche:"on"]) (set structure_lichter_kueche on)

Wenn also zwischen 6 und 9:30 das Radio angemacht wird, dann geht auch das Licht an.

Schlechte Lösung? Oder gibt es noch eine bessere?

Ich bin im Moment auf dem DOIF Trip....Weiß bloß nicht ob viele DOIF's das System langsam machen.

Gruß
Hermann


hermann1514

Hey TeeVau,

hast Du die aktuellste Version von dem Modul?
Dieses wird ja Standardmäßig nicht mit aktualisiert beim "update".

Versuche es mal mit:

update all https://raw.githubusercontent.com/ChrisD70/FHEM-Modules/master/autoupdate/sb/controls_squeezebox.txt

Gruß
Hermann


Zitat von: TeeVau am 15 Juni 2016, 08:00:03
Hallo zusammen,

mal eine Frage am Rande: Hat noch jemand das Problem, dass der Modul für den SB_SERVER zum blockieren/freeze von FHEM führt? Das scheint sich irgendwie vor ein paar Monaten bei mir eingeschlichen zu haben. Konnte bis lang jedoch nur den SB_SERVER als Verursachen entdecken und habe sonst noch nichts unternommen.
Habe auch eigentlich gar nichts an der Installation vom LMS geändert. Gibt es neben den attr Einstellungen noch etwas, was zum blockieren führen kann?

Die Freezes werden auch immer größer. Erst fängt es mit 1 Sekunde an und je länger FHEM läuft (hier sind es Tage und Wochen) desto länger werden die Freezes. So ab 10 Sekunden nervt mich die Verzögerung dann so, dass ich einen restart von FHEM mache. Dann ist erst einmal wieder ruhe. Wollte dem jetzt aber doch mal genauer auf die Schliche kommen.

Grüße, Tobias

ChrisD

Hallo,

@Tobias: FHEM kann blockieren wenn die Verbindung zum Server abbricht und der interne Ping verwendet wird. Das Attribut alivetimer legt fest wie oft überprüft wird ob der Server erreichbar ist. Wenn der interne Ping verwendet wird, ist FHEM 2-3 s blockiert. Die Freezes sollten sich aber nicht addieren.

Kannst du 'apptime' verwenden um zu sehen welche Funktion die Freezes auslöst ?

Welche Version der Module verwendest du ? In 0017 habe ich im Januar für den internen Ping eine Änderung gemacht die den Absturz auf der Fritz!Box verhindern soll.

Grüße,

ChrisD

FHEm2005

Hallo hermann1514,

ZitatSchlechte Lösung? Oder gibt es noch eine bessere?

Gute Lösung, wenn Du dir uhrzeit benötigst. Da im Reading state defaultmäßig der Status von power steht kann du folgendes benutzen:

define not_SB3_Buero notify SB3.BUero Lampe $EVENT

Gruß Eberhard
Raspi3: FHEM, CULV3 (V1.61), EnOcean Pi 868, nanoCUL433, HUE-Bridge; Raspi4: Node-red, MQTT, Gaszähler auslesen mit ESP32-CAM

TeeVau

Hallo,

ich verwende die aktuellste Version, "update all http://..." sagt "nothing to do" :-) Hier mal ein paar mehr Infos zu meinem System:

# $Id: 98_SB_PLAYER.pm 9752 beta 0055 CD/MM/Matthew/Heppel $
# $Id: 97_SB_SERVER.pm 9811 beta 0018 CD $



Internals:
   ALIVECHECK received
   CLICONNECTION on
   CLIPORT    9091
   CMDSTACK   0
   DEF        192.168.178.37:9091
   DeviceName 192.168.178.37:9091
   FD         4
   IP         192.168.178.37
   LASTANSWER fhemalivecheck
   NAME       SqueezeBoxServer
   NR         337
   NTFY_ORDER 50-SqueezeBoxServer
   PARTIAL
   PASSWORD   ?
   PRESENCENAME none
   RCCNAME    none
   STATE      opened
   TYPE       SB_SERVER
   USERNAME   ?
   WOLNAME    none
   Readings:
     2016-06-10 13:13:11   db_albums       544
     2016-06-10 13:13:11   db_artists      175
     2016-06-10 13:13:11   db_genres       68
     2016-06-10 13:13:11   db_songs        7987
     2016-06-10 13:13:11   favoritesname
     2016-06-10 13:13:11   favoritestotal  6
     2016-06-10 13:13:11   players         3
     2016-06-10 13:13:11   players_mysb    0
     2016-06-10 13:13:11   players_other   0
     2016-06-10 13:13:11   power           on
     2016-06-10 13:13:11   scan_last       16-12-2015 10:13:14
     2016-06-10 13:13:11   scandb          ?
     2016-06-10 13:13:11   scanlastfailed  none
     2016-06-10 13:13:11   scanning        no
     2016-06-10 13:13:11   scanprogressdone 0
     2016-06-10 13:13:11   scanprogresstotal 0
     2016-06-10 13:13:11   serversecure    0
     2016-06-10 13:13:11   serverversion   7.7.5
     2016-06-10 13:13:09   state           opened
   Helper:
     SB_SERVER_LMS_Status 1465557189
     SB_SERVER_VERSION 0014
     pingCounter 0
     Bm:
       Sb_server_get:
         cnt        2
         dmx        0
         mAr
         max        0
         tot        0
       Sb_server_notify:
         cnt        31
         dmx        0
         mAr
         max        0
         tot        0
       Sb_server_read:
         cnt        19
         dmx        0
         max        12
         tot        83
         mAr:
           HASH(0x3480f38)
       Sb_server_set:
         cnt        6
         dmx        0
         mAr
         max        0
         tot        0
Attributes:
   alivetimer 120
   doalivecheck true
   httpport   9000
   maxcmdstack 200
   maxfavorites 30
   room       SB_PLAYER



2016.06.12 17:29:31.080 1: Perfmon: possible freeze starting at 17:29:30, delay is 1.08
2016.06.12 17:34:31.075 1: Perfmon: possible freeze starting at 17:34:30, delay is 1.075
2016.06.12 17:39:31.154 1: Perfmon: possible freeze starting at 17:39:30, delay is 1.154
2016.06.12 17:44:31.344 1: Perfmon: possible freeze starting at 17:44:30, delay is 1.344

2016.06.14 03:15:06.756 1: Perfmon: possible freeze starting at 03:15:05, delay is 1.756
2016.06.14 03:20:06.760 1: Perfmon: possible freeze starting at 03:20:05, delay is 1.76
2016.06.14 03:25:06.865 1: Perfmon: possible freeze starting at 03:25:05, delay is 1.865
2016.06.14 03:30:06.920 1: Perfmon: possible freeze starting at 03:30:05, delay is 1.92
2016.06.14 03:35:07.040 1: Perfmon: possible freeze starting at 03:35:06, delay is 1.04
2016.06.14 03:40:07.167 1: Perfmon: possible freeze starting at 03:40:06, delay is 1.167

2016.06.15 00:20:29.097 1: Perfmon: possible freeze starting at 00:20:27, delay is 2.097
2016.06.15 00:25:29.064 1: Perfmon: possible freeze starting at 00:25:27, delay is 2.064
2016.06.15 00:30:29.253 1: Perfmon: possible freeze starting at 00:30:27, delay is 2.253
2016.06.15 00:35:29.344 1: Perfmon: possible freeze starting at 00:35:27, delay is 2.344
2016.06.15 00:40:29.463 1: Perfmon: possible freeze starting at 00:40:27, delay is 2.463

2016.06.17 09:16:29.407 1: Perfmon: possible freeze starting at 09:16:26, delay is 3.406
2016.06.17 09:21:29.450 1: Perfmon: possible freeze starting at 09:21:26, delay is 3.45
2016.06.17 09:26:29.676 1: Perfmon: possible freeze starting at 09:26:26, delay is 3.676
2016.06.17 09:31:29.781 1: Perfmon: possible freeze starting at 09:31:26, delay is 3.781
2016.06.17 09:36:29.933 1: Perfmon: possible freeze starting at 09:36:26, delay is 3.933



                                name             function    max  count    total  average maxDly
                    SqueezeBoxServer       SB_SERVER_Read   3913    105     5188    49.41      0 HASH(SqueezeBoxServer)
             tmr-SB_PLAYER_GetStatus      HASH(0x3b2c060)    127      1      127   127.00      0 HASH(wz_squeezebox)
             tmr-SB_PLAYER_GetStatus      HASH(0x3c94508)    119      1      119   119.00      7 HASH(ku_squeezebox)
             tmr-SB_PLAYER_GetStatus      HASH(0x3f531f0)     63      2      126    63.00      6 HASH(bz_squeezebox)


Der LMS läuft auf dem selben PC, wo FHEM in einer VM läuft.

Grüße, Tobias
FHEM 5.8 dev (virtualisiert) / FBF 7390 (CUL 868MHz V 1.51 / panStick (AVR1))
FS20: fs20di,fs20pira,fs20sm8,fs20st2,fs20tfk,fs20ue1,fs20ws1
panStamp (AVR1): RGB Multi von ext23, 1W-DSxxxx, I/O Sketch, Spritzpumpe
Multimedia: Panasonic TV (VIERA), Kodi, Yamaha RX-V781, LMS
Sonstiges: XiaomiFlowerSen

hermann1514

Hi,

würde auch gehen - aber hier wird dann ja das Licht wieder ausgeschaltet wenn ich das Radio ausschalte - oder?
Ich lasse das mal so mit dem DOIF. Funzt zur Zeit ganz gut :-)

Danke.

Zitat von: FHEm2005 am 17 Juni 2016, 08:45:34
Hallo hermann1514,

Gute Lösung, wenn Du dir uhrzeit benötigst. Da im Reading state defaultmäßig der Status von power steht kann du folgendes benutzen:

define not_SB3_Buero notify SB3.BUero Lampe $EVENT

Gruß Eberhard

Tedious

Hallo zusammen,

kurze Frage - LMS läuft als Server auf einem NUC, auf dem agiert auch softsqueeze als Player. Somit haben beide Devices die selbe Mac-Adresse, da meckert er natürlich beim define (Server ist definiert, will ich den Player definieren soll ich erst den Server löschen - already exists). Jemand eine Idee wie ich FHEM beide unterschieben kann?

Grüße tedious
FHEM auf Proxmox-VM (Intel NUC) mit 4xMapleCUN (433,3x868) und Jeelink, HUE, MiLight, Max!, SonOff, Zigbee, Alexa, uvm...

RoBra81

Hallo,

Zitat von: Tedious am 20 Juni 2016, 11:46:10
Hallo zusammen,

kurze Frage - LMS läuft als Server auf einem NUC, auf dem agiert auch softsqueeze als Player. Somit haben beide Devices die selbe Mac-Adresse, da meckert er natürlich beim define (Server ist definiert, will ich den Player definieren soll ich erst den Server löschen - already exists). Jemand eine Idee wie ich FHEM beide unterschieben kann?

Grüße tedious

Ich nutze Squeezelite - dem kann man als Parameter die MAC-Adresse übergeben, unter der er sich melden soll...

Ronny

Tedious

Danke für den Tip, schaue ich mir mal an  :)
FHEM auf Proxmox-VM (Intel NUC) mit 4xMapleCUN (433,3x868) und Jeelink, HUE, MiLight, Max!, SonOff, Zigbee, Alexa, uvm...

ChrisD

#1139
Hallo,

@Tobias: Ich kann den Effekt leider nicht reproduzieren. Ich habe SB_SERVER so modifiziert dass in der Read-Routine die Zeiten erfasst werden und im Log ausgegeben werden wenn sie größer als 1 s sind. Kannst du bitte die angehängte Version testen und mir die Logausgaben schicken ?

Grüße,

ChrisD

[Edit: Testversion entfernt]