Neueste Beiträge

#1
Solaranlagen / Aw: 76_SolarForecast - Informa...
Letzter Beitrag von bismosa - 18 Juni 2025, 18:26:42
Hallo!

Soll ich mein "Problem" vielleicht lieber in einen neuen Thread verschieben?

Ich habe nun ein paar Debug-Zeilen zusammen. Ich selbst werde nicht so ganz schlau daraus. Um 08:00:04 wurde die Pumpe heute gestartet. Um 08:00:47 war dann aber Interrupt gesetzt und die Pumpe wurde wieder abgeschaltet.
2025.06.18 07:59:49 1: SF DEBUG> ############### consumerSwitching consumer "02" ###############
2025.06.18 07:59:49 1: SF DEBUG> consumer "02" - ConsumptionRecommended calc method: default, value: 493
2025.06.18 07:59:49 1: SF DEBUG> consumer "02" - additional consumption after switching on (if currently 'off'): 500 W
2025.06.18 07:59:49 1: SF DEBUG> consumer "02" - current planning state: planned
2025.06.18 07:59:49 1: SF DEBUG> consumer "02" - physical Switchstate before switching: off
2025.06.18 07:59:49 1: SF DEBUG> consumer "02" - logical Switchstate before switching: off
2025.06.18 07:59:49 1: SF DEBUG> consumer "02" - general switching parameters => auto mode: 1, Current household consumption: 294 W, nompower: 500, surplus: 493 W, planstate: planned: 2025-06-18 08:00:00 - 2025-06-18 16:00:00, starttime: 18.06.2025 08:00:00
2025.06.18 07:59:49 1: SF DEBUG> consumer "02" - isInLocktime: 0
2025.06.18 07:59:49 1: SF DEBUG> consumer "02" - Check Context 'switch on' => swoncond: 1, on-command: on
2025.06.18 07:59:49 1: SF DEBUG> consumer "02" - isAddSwitchOnCond Info: value "" matches the Regex ""
-> Check successful
2025.06.18 07:59:49 1: SF DEBUG> consumer "02" - device 'Firmata_Aussensteckdose' is used as switching device
2025.06.18 07:59:49 1: SF DEBUG> consumer "02" - Interrupt Info: value "0" doesn't match the Regex "1"
-> the effect depends on the switch context
2025.06.18 07:59:49 1: SF DEBUG> consumer "02" - Interrupt Characteristic value: 3
2025.06.18 07:59:49 1: SF DEBUG> consumer "02" - Check Context 'switch off' => swoffcond: 0, off-command: off
2025.06.18 07:59:49 1: SF DEBUG> consumer "02" - Interrupt Info: value "0" doesn't match the Regex "1"
-> the effect depends on the switch context
2025.06.18 07:59:49 1: SF DEBUG> consumer "02" - current planning state: planned
2025.06.18 07:59:49 1: SF DEBUG> consumer "02" - physical Switchstate after switching: off
2025.06.18 07:59:49 1: SF DEBUG> consumer "02" - logical Switchstate after switching: off
2025.06.18 07:59:49 1: SF DEBUG> consumer "02" - cycleDayNum: 0
2025.06.18 07:59:49 1: SF DEBUG> consumer "02" - last cycle start time: 2025-06-17 20:07:57
2025.06.18 07:59:49 1: SF DEBUG> consumer "02" - last cycle end time: 2025-06-17 20:15:03

2025.06.18 08:00:04 1: SF DEBUG> ############### consumerSwitching consumer "02" ###############
2025.06.18 08:00:04 1: SF DEBUG> consumer "02" - ConsumptionRecommended calc method: default, value: 495
2025.06.18 08:00:04 1: SF DEBUG> consumer "02" - additional consumption after switching on (if currently 'off'): 500 W
2025.06.18 08:00:04 1: SF DEBUG> consumer "02" - current planning state: planned
2025.06.18 08:00:04 1: SF DEBUG> consumer "02" - physical Switchstate before switching: off
2025.06.18 08:00:04 1: SF DEBUG> consumer "02" - logical Switchstate before switching: off
2025.06.18 08:00:04 1: SF DEBUG> consumer "02" - general switching parameters => auto mode: 1, Current household consumption: 291 W, nompower: 500, surplus: 495 W, planstate: planned: 2025-06-18 08:00:00 - 2025-06-18 16:00:00, starttime: 18.06.2025 08:00:00
2025.06.18 08:00:04 1: SF DEBUG> consumer "02" - isInLocktime: 0
2025.06.18 08:00:04 1: SF DEBUG> consumer "02" - Check Context 'switch on' => swoncond: 1, on-command: on
2025.06.18 08:00:04 1: SF DEBUG> consumer "02" - isAddSwitchOnCond Info: value "" matches the Regex ""
-> Check successful
2025.06.18 08:00:04 1: SF DEBUG> consumer "02" - device 'Firmata_Aussensteckdose' is used as switching device
2025.06.18 08:00:04 1: SF DEBUG> consumer "02" - Interrupt Info: value "0" doesn't match the Regex "1"
-> the effect depends on the switch context
2025.06.18 08:00:04 1: SF DEBUG> consumer "02" - Interrupt Characteristic value: 3
2025.06.18 08:00:04 1: SF DEBUG> Consumer switch enable by battery state: 1
2025.06.18 08:00:04 1: SF DEBUG> consumer "02" - send switch command now: "set Firmata_Aussensteckdose on"
2025.06.18 08:00:04 3: MQTT2_DEVICE set Firmata_Aussensteckdose on
2025.06.18 08:00:04 1: SF DEBUG> consumer "02" - Check Context 'switch off' => swoffcond: 0, off-command: off
2025.06.18 08:00:04 1: SF DEBUG> consumer "02" - Interrupt Info: value "0" doesn't match the Regex "1"
-> the effect depends on the switch context
2025.06.18 08:00:04 1: SF DEBUG> consumer "02" - current planning state: starting
2025.06.18 08:00:04 1: SF DEBUG> consumer "02" - physical Switchstate after switching: on
2025.06.18 08:00:04 1: SF DEBUG> consumer "02" - logical Switchstate after switching: on
2025.06.18 08:00:04 1: SF DEBUG> consumer "02" - cycleDayNum: 1
2025.06.18 08:00:04 1: SF DEBUG> consumer "02" - last cycle start time: 2025-06-18 08:00:04
2025.06.18 08:00:04 1: SF DEBUG> consumer "02" - last cycle end time: still running

2025.06.18 08:00:09 1: SMAInverter - Inverter answer does not match our parameters.
2025.06.18 08:00:38 1: SMAInverter SMAInverter -> BlockingCall SMAInverter_getstatusDoParse Timeout: process terminated
2025.06.18 08:00:47 1: SF DEBUG> ############### consumerSwitching consumer "02" ###############
2025.06.18 08:00:47 1: SF DEBUG> consumer "02" - ConsumptionRecommended calc method: default, value: 498
2025.06.18 08:00:47 1: SF DEBUG> consumer "02" - additional consumption after switching on (if currently 'off'): 0 W
2025.06.18 08:00:47 1: SF DEBUG> consumer "02" - current planning state: started
2025.06.18 08:00:47 1: SF DEBUG> consumer "02" - physical Switchstate before switching: on
2025.06.18 08:00:47 1: SF DEBUG> consumer "02" - logical Switchstate before switching: on
2025.06.18 08:00:47 1: SF DEBUG> consumer "02" - general switching parameters => auto mode: 1, Current household consumption: 291 W, nompower: 500, surplus: 498 W, planstate: switched on: 2025-06-18 08:00:04 - 2025-06-18 16:00:04, starttime: 18.06.2025 08:00:04
2025.06.18 08:00:47 1: SF DEBUG> consumer "02" - isInLocktime: 0
2025.06.18 08:00:47 1: SF DEBUG> consumer "02" - Check Context 'switch on' => swoncond: 1, on-command: on
2025.06.18 08:00:47 1: SF DEBUG> consumer "02" - isAddSwitchOnCond Info: value "" matches the Regex ""
-> Check successful
2025.06.18 08:00:47 1: SF DEBUG> consumer "02" - device 'Firmata_Aussensteckdose' is used as switching device
2025.06.18 08:00:47 1: SF DEBUG> consumer "02" - Interrupt Info: value "1" matches the Regex "1"
-> Check successful -> the effect depends on the switch context
2025.06.18 08:00:47 1: SF DEBUG> consumer "02" - Interrupt Characteristic value: 2
2025.06.18 08:00:47 1: SF DEBUG> consumer "02" - Check Context 'switch off' => swoffcond: 0, off-command: off
2025.06.18 08:00:47 1: SF DEBUG> consumer "02" - Interrupt Info: value "1" matches the Regex "1"
-> Check successful -> the effect depends on the switch context
2025.06.18 08:00:47 1: SF DEBUG> consumer "02" - send switch command now: "set Firmata_Aussensteckdose off"
2025.06.18 08:00:47 3: MQTT2_DEVICE set Firmata_Aussensteckdose off
2025.06.18 08:00:47 3: MQTT2_DEVICE set Firmata_Aussensteckdose off
2025.06.18 08:00:47 1: SF DEBUG> consumer "02" - current planning state: interrupting
2025.06.18 08:00:47 1: SF DEBUG> consumer "02" - physical Switchstate after switching: off
2025.06.18 08:00:47 1: SF DEBUG> consumer "02" - logical Switchstate after switching: off
2025.06.18 08:00:47 1: SF DEBUG> consumer "02" - cycleDayNum: 1
2025.06.18 08:00:47 1: SF DEBUG> consumer "02" - last cycle start time: 2025-06-18 08:00:04
2025.06.18 08:00:47 1: SF DEBUG> consumer "02" - last cycle end time: -
Kann es sein, das hier ein Fehler im Wiki (oder in der Zwischenzeit eine Änderung) war?
if ($mrest >= ($mneed - $msum)) {
          readingsSingleUpdate ($dhash, 'SF_Int', 1, 0);                        # Interrupt-Freigabe
      }
      else {
          readingsSingleUpdate ($dhash, 'SF_Int', 0, 0);                        # keine Interrupt-Freigabe
 
      }
Freigabe müsste doch (wenn ich das richtig verstanden habe) 0 sein?
Da aber keine Laufzeit hinzugekommen ist, warum sollte dann durch das Script SF_Int geändert worden sein?

Um 13:01:47 wurde dann die Pumpe eingeschaltet. Da war Interrupt auf "0".
Alle anderen Schaltzeiten waren dann heute wegen zu starker Bewölkung und nicht vorhandenem PV-Überschuss völlig in Ordnung.

Gruß
Bismosa
#2
Anfängerfragen / Aw: FHEM auf Raspberry Pi – Ge...
Letzter Beitrag von zhufangli123 - 18 Juni 2025, 18:00:18
Wenn FHEM auf deinem Raspberry Pi Geräte nicht erkennt, prüf zuerst, ob die Hardware korrekt angeschlossen ist und die richtigen Module in FHEM geladen wurden. Schau auch ins Logfile – oft gibt's dort Hinweise. Manchmal hilft ein Neustart oder das manuelle Hinzufügen des Geräts über die FHEM-Oberfläche. logomate
#3
FRITZ!Box / Aw: 72_FRITZBOX.pm ab Version ...
Letzter Beitrag von JoWiemann - 18 Juni 2025, 16:37:38
Hallo,

in der Diskussion https://forum.fhem.de/index.php?msg=1343430 ist ein Fehler im FritzBox-Modul bei der Ermittlung der IP Adressen für die Cable Boxen festgestellt worden. Noch weiß ich nicht, ob AVM etwas in der TR064 geändert hat, oder ob es immer schon ein Fehler im Code war. Bin ich aktuell auf der Suche.

Grüße Jörg
#4
Codeschnipsel / Aw: 🌐 öffentliche IP ermitteln...
Letzter Beitrag von JoWiemann - 18 Juni 2025, 16:37:21
Hallo passibe,

vielen Dank für die Rückmeldung. Ist aber ein Fehler im Code oder eine Änderung von AVM, die ich nicht mitbekommen habe. Muss ich mir jetzt mal genauer ansehen.

Ich würde das Thema dann ab jetzt im passenden Bereich für das FritzBox Modul weiter bearbeiten. https://forum.fhem.de/index.php?msg=1343435

Grüße Jörg
#5
TabletUI / [ERLEDIGT!] Frage an die JS Ex...
Letzter Beitrag von DocCyber - 18 Juni 2025, 16:36:07
Hallo zusammen,

da meine Kenntnisse ist JS nur sehr rudimentär sind, hoffe ich auf eure Unterstützung.
Ich hätte gern eine (lokale) JS-Funktion, die den Wert von DEVICE abfragt und eine der Farben zurückgibt, die beim Aufruf als Parameter übergeben wurden.

Pseudocode:
function setCol(device, onColor, offColor) {
  color = Value('device') == 'on' ? onColor : offColor
  return color
}

Aufruf:
[color] = "valve | map('on: setCol(´wpMode´,´blue´, ´red´)')"

Kann mir bitte jemand helfen?

Hintergrund:
In fhem habe ich zwei Dummys definiert.
valve steht für ein Ventil, und
wpMode steht für den Wärmepumpenmodus
Beide Dummys haben die möglichen Werte on und off .

Ist das Ventil on (geöffnet), soll die aktuelle Temperatur des Heiz- bzw. Kühlkreises beim Heizen in rot und beim Kühlen in blau dargestellt werden.


#6
TabletUI / Aw: Speziellere Farb-Fragen fü...
Letzter Beitrag von yersinia - 18 Juni 2025, 16:14:30
Zitat von: DocCyber am 18 Juni 2025, 12:49:22
Zitat von: Guybrush am 17 Juni 2025, 20:46:37geht nicht
Danke für deinen Input.
Leider kann ich deine Aussage bzgl meiner 2. Frage nicht akzeptieren; ist mir zu pauschal.
Es gibt immer eine Lösung, auch wenn ich sie noch nicht weiß.
Nur weil du es nicht akzeptieren möchtest, ist Guybrushs Antwort noch lange nicht falsch. ;) Im Standard kann FTUI3 dies auch nicht (und wenn es komplexer wird - nutze userReadings!!!) - aber ich kann mich nur wiederholen:
Zitat von: yersinia am 22 Mai 2025, 09:51:32
Zitat von: satprofi am 20 Mai 2025, 22:23:53Nur wie mach ich das?
Jdfs nicht im FTUI3 innerhalb einer pipe, die Fragestellung hatten wir in letzter Zeit öfters; siehe auch #3798 - #3803.
#7
MQTT / Aw: Solarbatterieen von Marste...
Letzter Beitrag von rudolfkoenig - 18 Juni 2025, 14:52:43
ZitatKann man eigentlich der Funktion bei der Readinglist auch als 3. Parameter den vorher gesendeten Befehl mitgeben.
set in MQTT2_DEVICE setzt das state Reading, und das kann man mit ReadingsVal($devName,"$state","") abfragen.
Das STATE Internal (das was angezeigt wird) kann man mit Value($devName) abfragen, aber das kann auch was anderes sein, wenn man stateFormat gesetzt hat.

Etwas offtopic: gibt es einen Grund, warum man im obigen Beispiel die Readings einzeln per setreading setzt?
Das ist ziemlich CPU-Intensiv, ich wuerde eher sowas vorschlagen:
sub
splitCD01($$)
{
  my ($dev, $answer) = @_;
  my $ret = {};
  my %map = (
      p1=>"batStatePV1",
      p2=>"batStatePV2",
      o1=>"batStateOut1",
      o2=>"batStateOut2",
      ...
  );
  for my $element (split m{,}x, $answer) {
    my ($key, $val) = split m{=}x, $element;
    $ret{$map{$key}} = $val if($map{$key});
  }
  return $ret;
}
(ungetestet)
#8
Codeschnipsel / Aw: 🌐 öffentliche IP ermitteln...
Letzter Beitrag von passibe - 18 Juni 2025, 14:44:10
Hi, dann läuft bei mir wohl was schief.
Vielleicht hängt das damit zusammen, dass NewExternalIPAddress bei mir direkt schon eine IPv6 ist?
Wobei, ich habe mal mit verbose 5 getestet und sehe da nur 500er:

2025.06.18 14:05:11 4:[box | 6660 | 252.07.58 | Readout_Run_Web_TR064.6551] - EXPANDED:uptimeConnect- start getting TR064 data
2025.06.18 14:05:11 4:[box | 6660 | 252.07.58 | SOAP_Request.12580] - EXPANDED:SOAP response error: 500 Internal Server Error
2025.06.18 14:05:11 4:[box | 6660 | 252.07.58 | Readout_Run_Web_TR064.6555] - EXPANDED:SOAP-ERROR -> SOAP response error: 500 Internal Server Error
2025.06.18 14:05:11 4:[box | 6660 | 252.07.58 | Readout_Run_Web_TR064.6586] - EXPANDED:uptimeConnect- end getting TR064 data
2025.06.18 14:05:11 4:[box | 6660 | 252.07.58 | Readout_Run_Web_TR064.6591] - EXPANDED:ipExtern- start getting TR064 data
2025.06.18 14:05:12 4:[box | 6660 | 252.07.58 | SOAP_Request.12580] - EXPANDED:SOAP response error: 500 Internal Server Error
2025.06.18 14:05:12 4:[box | 6660 | 252.07.58 | Readout_Run_Web_TR064.6597] - EXPANDED:SOAP-ERROR -> SOAP response error: 500 Internal Server Error
2025.06.18 14:05:12 4:[box | 6660 | 252.07.58 | Readout_Run_Web_TR064.6610] - EXPANDED:ipExtern- end getting TR064 data
2025.06.18 14:05:12 4:[box | 6660 | 252.07.58 | Readout_Run_Web_TR064.6618] - EXPANDED:ipv6 - start getting TR064 data
2025.06.18 14:05:12 4:[box | 6660 | 252.07.58 | SOAP_Request.12580] - EXPANDED:SOAP response error: 500 Internal Server Error
2025.06.18 14:05:12 4:[box | 6660 | 252.07.58 | Readout_Run_Web_TR064.6625] - EXPANDED:SOAP/TR064-ERROR -> SOAP response error: 500 Internal Server Error
2025.06.18 14:05:12 4:[box | 6660 | 252.07.58 | Readout_Add_Reading.7228] - EXPANDED:box_ipv6_Extern:
2025.06.18 14:05:12 4:[box | 6660 | 252.07.58 | Readout_Run_Web_TR064.6638] - EXPANDED:ipv6 - end getting TR064 data
2025.06.18 14:05:12 4:[box | 6660 | 252.07.58 | Readout_Run_Web_TR064.6643] - EXPANDED:ipv6_Prefix - start getting TR064 data
2025.06.18 14:05:12 4:[box | 6660 | 252.07.58 | SOAP_Request.12580] - EXPANDED:SOAP response error: 500 Internal Server Error
2025.06.18 14:05:12 4:[box | 6660 | 252.07.58 | Readout_Run_Web_TR064.6650] - EXPANDED:SOAP/TR064-ERROR -> SOAP response error: 500 Internal Server Error
2025.06.18 14:05:12 4:[box | 6660 | 252.07.58 | Readout_Add_Reading.7228] - EXPANDED:box_ipv6_Extern:
2025.06.18 14:05:12 4:[box | 6660 | 252.07.58 | Readout_Run_Web_TR064.6663] - EXPANDED:ipv6_Prefix - start getting TR064 data
2025.06.18 14:05:12 4:[box | 6660 | 252.07.58 | Readout_Run_Web_TR064.6667] - EXPANDED:AccessType - start getting TR064 data
2025.06.18 14:05:12 4:[box | 6660 | 252.07.58 | SOAP_Request.12580] - EXPANDED:SOAP response error: 500 Internal Server Error
2025.06.18 14:05:12 4:[box | 6660 | 252.07.58 | Readout_Run_Web_TR064.6674] - EXPANDED:SOAP/TR064-ERROR -> SOAP response error: 500 Internal Server Error
2025.06.18 14:05:12 4:[box | 6660 | 252.07.58 | Readout_Add_Reading.7228] - EXPANDED:box_wan_AccessType:
2025.06.18 14:05:12 4:[box | 6660 | 252.07.58 | Readout_Run_Web_TR064.6693] - EXPANDED:AccessType - end getting TR064 data
Irgendwie scheint da also der SOAP Aufruf nicht zu passen?
get <NAME> tr064Command WANIPConnection:1 wanipconnection1 GetInfo funktioniert aber nach wie vor.
#9
Anfängerfragen / Jeelink Einbindung löst FHEM C...
Letzter Beitrag von Raptor553 - 18 Juni 2025, 13:52:28
Hallo,
ich habe folgendes Problem. Nachdem ich meinen Raspi 3B auf Bookworm geupgraded habe und FHEM neu aufgesetzt habe, kann ich das Jeelink Modul nicht mehr einbinden. Vorher mit Jessi hat alles einwandfrei funktioniert (über Jahre).

Diese habe ich aus dem Log bevor die Prozessorlast auf 100% geht und nichts mehr geht.

Zitat2025.06.17 22:19:50 3: Opening myJeeLink device /dev/ttyUSB0
2025.06.17 22:19:50 3: Setting myJeeLink serial parameters to 57600,8,N,1
2025.06.17 22:19:51 1: /dev/ttyUSB0 disconnected, waiting to reappear (myJeeLink)

Bei der Abfrage direkt über die Schnittstelle bekomme ich jedoch saubere Werte rein:
Zitat--> cat /dev/ttyUSB0
OK 9 28 1 5 21 39
OK 9 36 1 4 206 58
OK 9 1 1 4 201 63
OK 9 8 1 5 76 106
OK 9 40 1 4 203 60
OK 9 40 1 4 210 62
OK 9 1 1 4 202 63
OK 9 8 1 5 76 106
OK 9 28 1 5 21 39

Kennt sich da einer mit genauer aus?
Ich bin eher so auf dem Level: "Search & Copy-Paste"

Vielen Dank schon mal vorab.
#10
MQTT / Aw: Solarbatterieen von Marste...
Letzter Beitrag von AlexMuc - 18 Juni 2025, 13:51:16
Hallo zusammen,
Kann man eigentlich der Funktion bei der Readinglist auch als 3. Parameter den vorher gesendeten Befehl mitgeben. Anschließend steht ja in State der Befehl aus dem Menü, aber ich brauch den schon bei der Auswertung.
Es sieht nämlich so aus, als ob Marstek bei den Rückgabewerten je nach Befehl die gleichen Kürzel, aber mit unterschiedlicher Bedeutung verwendet.