Autor Thema: Modul für ENIGMA2 Receiver  (Gelesen 284659 mal)

Offline cocojambo

  • Sr. Member
  • ****
  • Beiträge: 542
Antw:Modul für ENIGMA2 Receiver
« Antwort #960 am: 15 Juni 2019, 13:29:42 »
Ich möchte in der room Liste den Status der Dreambaox angezeigt bekommen. Stattdessen erscheinen aber die Schaltoptionen.Ich lasse mir den Status aller im LAN und in FHEM exitierenden Verbindungen anzeigen. Siehe Foto(ich hoffe das geht mit jpg Bildern).
Alle Staten werden angezeigt, nur der Status der Dreambox über das Enigma2 Modul wird nicht angezeigt. Dort steht der Status und die Schaltoptionen.
Wie kann ich das ändern, das nur der Status so wie bei den anderen Komponenten angezeigt wird?

Gruß aus Köln
Norbert
FHEM5.9 Buster FB7490 FB7430 3xraspi2+3+4 2xHM-LAN-CFG CUL868 CUNO868 HUE-Bridge Harmony-Hub 5xHM-LC-Sw-PI-2 3xHM-WDS30-T2-SN 1xHM-LC_Sw4-DR 3xHM-ES-PMSw1-PI 3xF20S20 2xFS20S4 8xFS20ST 7xFS20SIG2 2xFS20S4U 2xFS20SU 6xFS20KSE 2xHM-ES-PMSW1-PL 2xFS20DI 2xFS20SM8 2xFS20WS 5xS300TH 1xASH2200 1xEM1000

Offline psycho160

  • Jr. Member
  • **
  • Beiträge: 75
Antw:Modul für ENIGMA2 Receiver
« Antwort #961 am: 07 November 2019, 10:15:51 »
In der früh schaltet mein Wecker den Fernseher mit einem bestimmten Sender ein. Manchmal brauche ich etwas länger zum Aufstehen , darum möchte ich nicht das FHEM zu einer bestimmten Zeit den Fernseher abschaltet (manchmal läuft auch gerade etwas spannendes).

Darum habe ich eine Funktion geschieben, die den internen Sleeptimer der Enigma Box aktiviert. Da wird man dann auch gefragt ob sich der Fernseher in 30 Sekunden abschalten soll oder nicht.
So hat man die Möglichkeit, noch weiter fernzusehen.

99_myUtils.pm
# Enigma2 Sleeptimer
sub enigmaSleepTimer($$$$$$) {
my ($NAME,$host,$username,$password,$duration,$setting)=@_;

#debug
my $log=5;

# Settings
my $URL         = qq{http://$host/web/sleeptimer};

my $param = {
  url           => $URL,
  method        => 'POST',
  user        => $username,
  pwd        => $password,
  hideurl => 1,
  boxname => $NAME,
  data => {'cmd' => 'set', 'time' => $duration, 'action' => 'standby', 'enabled' => $setting, 'confirmed' => 'False'},
  timeout       =>  4,
  callback   => \&EnigmaSleepTimer_ParseHttpResponse
};

  Log3 $NAME, $log, 'Blocking GET: ' . Dumper($param);
  HttpUtils_NonblockingGet($param);
}

# Callback for Enigma Timer
sub EnigmaSleepTimer_ParseHttpResponse($)
{
    my ($param, $err, $data) = @_;
    my $name = $param->{boxname};

    if($err ne "")
    {
        Log3 $name, 3, "$name : error while requesting ".$param->{url}." - $err";
    }

    elsif($data ne "")
    {
        Log3 $name, 5, "url ".$param->{url}." returned: $data";
my $xml = $data;
my $encodedXml = encode("UTF-8", $xml);
my $doc = XML::LibXML->load_xml( string => $encodedXml );
my ($status) = $doc->documentElement->getChildrenByTagName('e2text');

Log3 $name, 3,"Enigma-Timer: $name - BoxInfo: " . $status->textContent;
    }
}


Hier ein Beispiel eines Dummy mit dem man den Timer ein und ausschalten kann.

Syntax ist: [Name (beliebig)],[IP der Box],[Username],[Passwort],[Dauer des Timers],[Timer ein oder ausschalten (True, False)],[Loglevel (optional)]

Notify Aufruf
test.* {
if($EVENT eq "on"){
enigmaSleepTimer("BoxName","192.168.1.20","user","passwort",35,"True");
}elsif ($EVENT eq "off"){
enigmaSleepTimer("BoxName","192.168.1.20","user","passwort",0,"False");
}
}


Eventuell könnte der Modulentwickler das ja direkt ins Modul aufnehmen?

EDIT: Aktualisierte Version des Codes (jetzt mit HttpUtils)
« Letzte Änderung: 02 Dezember 2019, 11:49:07 von psycho160 »
2013@FHEM, Pi 4, Homematic, Shelly (soll demnächst Homematic ablösen wo es geht), tado-FHEM Modul (perlcritic 3 ^^)(https://cutt.ly/QrQ3Ecb)

Offline balli1187

  • Sr. Member
  • ****
  • Beiträge: 599
Antw:Modul für ENIGMA2 Receiver
« Antwort #962 am: 20 März 2020, 14:03:13 »
moin,

Ich nutze as Modul hauptsächlich um mir Nachrichten auf dem TV asuzugeben.
Wäre es möglich die Funktion Modul so zu gestallten, dass die Nachricht nur dann angezeigt wird, wenn die Box auch läuft? Bei ausgeschalteter Box (Stand-by) wird mir die nachricht auf dem kleinen Display meiner Vu+ Solo4K angezeigt aber da kann ich nichts damit anfangen.

Bisher bin ich den umweg gegangen die anzuzeigenden Nachrichten in ein Reading zu schreiben und dann dann beim einschalten der Box dieses über ein weiteres notify zu prüfen.

Grüße, Stephan
FHEM auf QNAP im docker, nanoCUL per ser2net an VU+, 2x Echo Dot, 3x HM-ES-PMSw1-Pl, 3x HM-LC-Bl1PBU-FM, 6x Sonoff Basic, div. "Shelly Eigenbauten" von Papa Romeo, ESPRGBWW-Controller, ...
Projekte: Smart Mirror in Spiegelschrank auf RPi Zero

Offline kabanett

  • Full Member
  • ***
  • Beiträge: 187
Antw:Modul für ENIGMA2 Receiver
« Antwort #963 am: 20 März 2020, 18:47:24 »
Hallo,
falls du DOIF verwendest. Ich mache das so:
([BLABLA:"BLA"] and [SAT_Wohnzimmer] eq "on") (set SAT_Wohnzimmer msg info 4 Deine Nachricht!)Ich denke, dass es im Notify und co auch funktioniert.

Gruß

Hardware: Fhem auf Raspi3 / selbtsbau CUL 433 und 868 MHz / MAX Thermostate / IT-Dosen nur noch Weihnachten / ESP8266+DHT22 / ESP8266+5V Relais / X10 Fernbedienung / Shelly 1,2,2.5 / LaCrosseGateway
Software: MaxScanner, weekprofil, DOIF, Enigma2, Onkyo_AVR, espBridge, linuxHid, MQTT2, FUIP

Online Otto123

  • Hero Member
  • *****
  • Beiträge: 15950
  • schon mal restore trainiert?
    • Otto's Technik Blog
Antw:Modul für ENIGMA2 Receiver
« Antwort #964 am: 20 März 2020, 20:02:40 »
so in der Art:
defmod nty_AnrufKlingelt notify FBMon:.*ring {\
  my $box="VUPLUS1";;\
  my $patt="123456[7,8]";;\
  my $number = ReadingsVal($NAME,"internal_number",99);;\
  if (($number =~ m/$patt/) and Value($box) eq "on"){ \
    fhem ("set $box showtext Anruf von [$NAME:external_name] [$NAME:external_number]")\
  } \
}
Viele Grüße aus Leipzig
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7490+7412,WRT1900ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266

Offline balli1187

  • Sr. Member
  • ****
  • Beiträge: 599
Antw:Modul für ENIGMA2 Receiver
« Antwort #965 am: 20 März 2020, 20:17:36 »
Danke ihr zwei. Eine solche Lösung hab ich ja auch und die funktioniert ausgezeichnet.

Ich bin nur gerade dabei auf das msg-Modul für die zentrale Verwaltung  umzustellen und dabei ist mir dann aufgefallen, dass es dann am Ende 4 Instanzen sind bis die Nachricht mal angespielt wird....
Und da dachte ich "eigentlich" könnte man das doch direkt ins Modul integrieren, dann letztlich brauch doch niemand die Nachricht, wenn die Box im Stand-by ist ;-)


Gesendet von iPhone mit Tapatalk
FHEM auf QNAP im docker, nanoCUL per ser2net an VU+, 2x Echo Dot, 3x HM-ES-PMSw1-Pl, 3x HM-LC-Bl1PBU-FM, 6x Sonoff Basic, div. "Shelly Eigenbauten" von Papa Romeo, ESPRGBWW-Controller, ...
Projekte: Smart Mirror in Spiegelschrank auf RPi Zero

Offline kabanett

  • Full Member
  • ***
  • Beiträge: 187
Antw:Modul für ENIGMA2 Receiver
« Antwort #966 am: 21 März 2020, 09:53:51 »
Ich bin nur gerade dabei auf das msg-Modul für die zentrale Verwaltung  umzustellen
Kannte ich noch nicht. Mal schauen, vielleicht ist das auch was für mich.  ;)

letztlich brauch doch niemand die Nachricht, wenn die Box im Stand-by ist ;-)
Scheinbar bastelt sich jeder selbst eine Lösung. Von daher, gebe ich dir recht!
Hardware: Fhem auf Raspi3 / selbtsbau CUL 433 und 868 MHz / MAX Thermostate / IT-Dosen nur noch Weihnachten / ESP8266+DHT22 / ESP8266+5V Relais / X10 Fernbedienung / Shelly 1,2,2.5 / LaCrosseGateway
Software: MaxScanner, weekprofil, DOIF, Enigma2, Onkyo_AVR, espBridge, linuxHid, MQTT2, FUIP

Offline balli1187

  • Sr. Member
  • ****
  • Beiträge: 599
Antw:Modul für ENIGMA2 Receiver
« Antwort #967 am: 30 März 2020, 13:59:37 »
so in der Art:
defmod nty_AnrufKlingelt notify FBMon:.*ring {\
  my $box="VUPLUS1";;\
  my $patt="123456[7,8]";;\
  my $number = ReadingsVal($NAME,"internal_number",99);;\
  if (($number =~ m/$patt/) and Value($box) eq "on"){ \
    fhem ("set $box showtext Anruf von [$NAME:external_name] [$NAME:external_number]")\
  } \
}
Off-Topic:
Sorry für diese absolute Einsteiger Frage, die hier eigentlich nicht hingehört aber:
Kannst du mir kurz erklären warum das mit den eckigen Klammern in deinem notify funktioniert?
Ich kenn die [] nur aus dem DOIF und in der Kommandozeile funktioniert die Agfrage von Readings auf diese Weise bei mir leider auch nicht.


Gesendet von iPhone mit Tapatalk
FHEM auf QNAP im docker, nanoCUL per ser2net an VU+, 2x Echo Dot, 3x HM-ES-PMSw1-Pl, 3x HM-LC-Bl1PBU-FM, 6x Sonoff Basic, div. "Shelly Eigenbauten" von Papa Romeo, ESPRGBWW-Controller, ...
Projekte: Smart Mirror in Spiegelschrank auf RPi Zero

Online Otto123

  • Hero Member
  • *****
  • Beiträge: 15950
  • schon mal restore trainiert?
    • Otto's Technik Blog
Antw:Modul für ENIGMA2 Receiver
« Antwort #968 am: 30 März 2020, 14:09:03 »
klar - gerne: steht in der Doku https://fhem.de/commandref_DE.html#set und nennt sich set magic :)
Und richtig: funktioniert so nur beim set und nicht bei der Abfrage in der Kommandozeile ;)
Viele Grüße aus Leipzig
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7490+7412,WRT1900ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266

Offline balli1187

  • Sr. Member
  • ****
  • Beiträge: 599
Antw:Modul für ENIGMA2 Receiver
« Antwort #969 am: 30 März 2020, 17:15:57 »
klar - gerne: steht in der Doku https://fhem.de/commandref_DE.html#set und nennt sich set magic :)
Und richtig: funktioniert so nur beim set und nicht bei der Abfrage in der Kommandozeile ;)
Wieder was gelernt - danke.
Du bist ja schon ein bisschen länger dabei... wurde schon mal diskutiert die Schreibweise generell zum Abfragen von Readings zu übernehmen?
Bisher kenn ich nur die Variante mit ReadingsVal und "Umweg" über Perl. Das macht Befehle teilweise elend lang und unlesbar....


Gesendet von iPhone mit Tapatalk
FHEM auf QNAP im docker, nanoCUL per ser2net an VU+, 2x Echo Dot, 3x HM-ES-PMSw1-Pl, 3x HM-LC-Bl1PBU-FM, 6x Sonoff Basic, div. "Shelly Eigenbauten" von Papa Romeo, ESPRGBWW-Controller, ...
Projekte: Smart Mirror in Spiegelschrank auf RPi Zero

Online Otto123

  • Hero Member
  • *****
  • Beiträge: 15950
  • schon mal restore trainiert?
    • Otto's Technik Blog
Antw:Modul für ENIGMA2 Receiver
« Antwort #970 am: 30 März 2020, 19:17:11 »
Dieser Syntax funktioniert für die Abfrage in IF (FHEM Befehl, nicht zu verwechseln mit Perl if) und DOIF.
Das mit elend lang und nicht lesbar ist immer relativ ;)
Viele Grüße aus Leipzig
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7490+7412,WRT1900ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266

Offline iHome

  • New Member
  • *
  • Beiträge: 18
Antw:Modul für ENIGMA2 Receiver
« Antwort #971 am: 20 April 2020, 18:59:33 »
Läuft :-)

Webif auf der Box zickt mit der default Einstellung


VG
Frank

Habe genau das gleiche Problem mit meiner DB920. Könntest Du den Lösungsweg posten? Was meinst Du mit Webif zickt. Welche Einstellungen müssten angepasst werden?

Offline bschatz

  • New Member
  • *
  • Beiträge: 3
dm520 akzeptiert nur POST-Requests für on/off
« Antwort #972 am: 07 Mai 2020, 18:01:17 »
Das Enigma2 Modul sendet POSTs welche von der dreambox dm520 nicht akzeptiert werden:
2020.05.07 17:54:41 5: ENIGMA2 dreambox: called function ENIGMA2_ReceiveCommand()
2020.05.07 17:54:41 4: ENIGMA2 dreambox: RCV powerstate/?newstate=4&
2020.05.07 17:54:41 5: ENIGMA2 dreambox: RES ERROR powerstate/?newstate=4& - not in XML format

<html>
  <head><title>405 - Invalid method: GET!</title></head>
  <body>
    <h1>Invalid method: GET!</h1>
    <p>GET is not allowed here, please use POST</p>
  </body>
</html>


Direkt mit curl:
(1) curl -X GET  http://192.168.1.200/web/powerstate?newstate=5

<html>
  <head><title>405 - Invalid method: GET!</title></head>
  <body>
    <h1>Invalid method: GET!</h1>
    <p>GET is not allowed here, please use POST</p>
  </body>
</html>

(2) curl -X POST  http://192.168.1.200/web/powerstate?newstate=5
<?xml version="1.0" encoding="UTF-8"?>
<e2powerstate>
   <e2instandby>false</e2instandby>
</e2powerstate>


Kann man irgendwo ein issue einstellen ? (In github ist ja nur ein mirror)




Offline kabanett

  • Full Member
  • ***
  • Beiträge: 187
Antw:Modul für ENIGMA2 Receiver
« Antwort #973 am: 09 Juni 2020, 11:56:45 »
Hallo
@Loredo
Siehst du eine Möglichkeit die seit Ende letzten Jahres verfügbare HDMI-CEC Steuerung zu implementieren?
Das wäre für entsprechende Szenen usw. eine tolle Sache. Mit Putty oder dem Terminal im OpenWebIf funktioniert es sehr zuverlässig. Dafür aber auch sehr umständlich.
Leider habe ich in der OpenWebIf- API Dokumentation nichts dazu gefunden. Ich selbst verstehe zu wenig davon, daher die Nachfrage.

Vielen Dank und Gruß
Hier ein Link zum Thema:
https://www.opena.tv/skripte/49116-ehdmicec-via-command-line-post414804.html#post414804
Hardware: Fhem auf Raspi3 / selbtsbau CUL 433 und 868 MHz / MAX Thermostate / IT-Dosen nur noch Weihnachten / ESP8266+DHT22 / ESP8266+5V Relais / X10 Fernbedienung / Shelly 1,2,2.5 / LaCrosseGateway
Software: MaxScanner, weekprofil, DOIF, Enigma2, Onkyo_AVR, espBridge, linuxHid, MQTT2, FUIP