Neueste Beiträge

#1
Sonstiges / Aw: HTTPMOD liest bei Clever-T...
Letzter Beitrag von Marko1976 - 03 Juni 2026, 00:27:24
Zitat von: RalfRog am 02 Juni 2026, 21:36:22Attribut "reading[xy]RegOpt g" ist dann bei mehrfachem Auftreten von reading[xy]Name nötig.
Offenbar wohl nicht sonst könnte das List hier ja nicht funktionieren:
Internals:
   BUSY       0
   DEF        https://www.clever-tanken.de/tankstelle_details/15360
   FUUID      69d76140-f33f-7706-a7d6-12051dc493774932
   FVERSION   98_HTTPMOD.pm:0.291590/2024-09-23
   Interval   396
   MainURL    https://www.clever-tanken.de/tankstelle_details/15360
   ModuleVersion 4.2.0 - 11.8.2023
   NAME       Tankstelle_HSe_ARAL_Roermonderstr
   NOTIFYDEV  global
   NR         588
   NTFY_ORDER 50-Tankstelle_HSe_ARAL_Roermonderstr
   STATE      Super E5: 1.99 € * Super E10: 1.93 € * Super Plus: 2.11 € * Diesel: 1.91 €
   TYPE       HTTPMOD
   eventCount 5205
   value     
   CompiledRegexes:
   HTTPCookieHash:
     csrftoken;:
       Name       csrftoken
       Options    expires=Tue, 01 Jun 2027 22:20:50 GMT; Max-Age=31449600; Path=/; SameSite=Lax
       Path       
       Value      6T6esr2u7j1BGsgE4wg15PJYAUxFtV84
   HttpUtils:
     NAME       
     addr       https://www.clever-tanken.de:443
     auth       0
     buf       
     code       200
     compress   1
     conn       
     data       
     displayurl https://www.clever-tanken.de/tankstelle_details/15360
     header     User-Agent: Mozilla/5.0 WindowsNT10.0 Chrome/120.0.0.0 Safari/537.36
Cookie: csrftoken=6T6esr2u7j1BGsgE4wg15PJYAUxFtV84
     host       www.clever-tanken.de
     httpheader HTTP/1.1 200 OK
Date: Tue, 02 Jun 2026 22:20:50 GMT
Server: Apache/2.4.52 (Ubuntu)
Vary: Cookie,Accept-Encoding
Content-Encoding: gzip
Content-Type: text/html; charset=utf-8
Set-Cookie: csrftoken=6T6esr2u7j1BGsgE4wg15PJYAUxFtV84; expires=Tue, 01 Jun 2027 22:20:50 GMT; Max-Age=31449600; Path=/; SameSite=Lax
X-Correlation-Uid: ah9XQrz0h5kNjZw-oXv0SAAAACQ
Connection: close
Transfer-Encoding: chunked
     httpversion 1.1
     hu_blocking 0
     hu_filecount 1
     hu_port    443
     hu_portSfx
     ignoreredirects 1
     loglevel   4
     path       /tankstelle_details/15360
     protocol   https
     redirects  0
     timeout    10
     url        https://www.clever-tanken.de/tankstelle_details/15360
     sslargs:
   QUEUE:
   READINGS:
     2026-06-03 00:02:09   Bioethanol_avg  0
     2026-06-03 00:02:09   Bioethanol_complete 0
     2026-06-03 00:02:09   Bioethanol_old  0
     2026-06-03 00:02:09   CNG_avg         0
     2026-06-03 00:02:09   CNG_complete    0
     2026-06-03 00:02:09   CNG_old         0
     2026-06-03 00:20:50   Diesel-1        1.90
     2026-06-03 00:20:50   Diesel-2        9
     2026-06-03 00:08:42   Diesel_avg      1.85
     2026-06-03 00:14:33   Diesel_complete 1.909
     2026-06-03 00:14:33   Diesel_old      1.90
     2026-06-03 00:02:09   LNG_avg         0
     2026-06-03 00:02:09   LNG_complete    0
     2026-06-03 00:02:09   LNG_old         0
     2026-06-03 00:20:50   LPG-1           1.12
     2026-06-03 00:20:50   LPG-2           9
     2026-06-03 00:08:42   LPG_avg         1.11
     2026-06-03 00:02:09   LPG_complete    1.129
     2026-06-03 00:02:09   LPG_old         1.12
     2026-06-03 00:20:50   Name            ARAL
     2026-06-03 00:20:50   Ort             Heinsberg
     2026-06-03 00:20:50   PLZ             52525
     2026-06-03 00:20:50   Strasse         Roermonder Str. 41
     2026-06-03 00:20:50   SuperE10-1      1.92
     2026-06-03 00:20:50   SuperE10-2      9
     2026-06-03 00:08:42   SuperE10_avg    1.87
     2026-06-03 00:14:33   SuperE10_complete 1.929
     2026-06-03 00:14:33   SuperE10_old    1.92
     2026-06-03 00:20:50   SuperE5-1       1.98
     2026-06-03 00:20:50   SuperE5-2       9
     2026-06-03 00:20:50   SuperE5_avg     1.93
     2026-06-03 00:14:33   SuperE5_complete 1.989
     2026-06-03 00:14:33   SuperE5_old     1.98
     2026-06-03 00:20:50   SuperPlus-1     2.10
     2026-06-03 00:20:50   SuperPlus-2     9
     2026-06-03 00:20:50   SuperPlus_avg   2.02
     2026-06-03 00:14:33   SuperPlus_complete 2.109
     2026-06-03 00:14:33   SuperPlus_old   2.10
     2026-06-03 00:02:09   Wasserstoff_avg 0
     2026-06-03 00:02:09   Wasserstoff_complete 0
     2026-06-03 00:02:09   Wasserstoff_old 0
     2026-06-03 00:02:09   last_update     03.06.2026 00:00
     2026-06-03 00:20:50   open_days-1     Samstag
     2026-06-03 00:20:50   open_days-2     Sonntag
     2026-06-03 00:20:50   open_days-3     Mo-Fr
     2026-06-03 00:20:50   open_hours-1    8:00-20:00
     2026-06-03 00:20:50   open_hours-2    9:00-20:00
     2026-06-03 00:20:50   open_hours-3    7:00-20:00
     2026-06-03 00:02:09   trigger_next_interval 1
   REQUEST:
     context    reading
     data       
     header     User-Agent: Mozilla/5.0 WindowsNT10.0 Chrome/120.0.0.0 Safari/537.36
     ignoreredirects 0
     num        unknown
     retryCount 0
     type       update
     url        https://www.clever-tanken.de/tankstelle_details/15360
   defptr:
     readingBase:
       Diesel-1   reading
       Diesel-2   reading
       LPG-1      reading
       LPG-2      reading
       Name       reading
       Ort        reading
       PLZ        reading
       Strasse    reading
       SuperE10-1 reading
       SuperE10-2 reading
       SuperE5-1  reading
       SuperE5-2  reading
       SuperPlus-1 reading
       SuperPlus-2 reading
       last_update reading
       open_days-1 reading
       open_days-2 reading
       open_days-3 reading
       open_hours-1 reading
       open_hours-2 reading
       open_hours-3 reading
     readingNum:
       Diesel-1   08
       Diesel-2   08
       LPG-1      12
       LPG-2      12
       Name       01
       Ort        04
       PLZ        03
       Strasse    02
       SuperE10-1 09
       SuperE10-2 09
       SuperE5-1  10
       SuperE5-2  10
       SuperPlus-1 11
       SuperPlus-2 11
       last_update 07
       open_days-1 05
       open_days-2 05
       open_days-3 05
       open_hours-1 06
       open_hours-2 06
       open_hours-3 06
     readingOutdated:
     readingSubNum:
       Diesel-1   -1
       Diesel-2   -2
       LPG-1      -1
       LPG-2      -2
       SuperE10-1 -1
       SuperE10-2 -2
       SuperE5-1  -1
       SuperE5-2  -2
       SuperPlus-1 -1
       SuperPlus-2 -2
       open_days-1 -1
       open_days-2 -2
       open_days-3 -3
       open_hours-1 -1
       open_hours-2 -2
       open_hours-3 -3
     requestReadings:
       update:
         Diesel-1   reading 08-1
         Diesel-2   reading 08-2
         LPG-1      reading 12-1
         LPG-2      reading 12-2
         Name       reading 01
         Ort        reading 04
         PLZ        reading 03
         Strasse    reading 02
         SuperE10-1 reading 09-1
         SuperE10-2 reading 09-2
         SuperE5-1  reading 10-1
         SuperE5-2  reading 10-2
         SuperPlus-1 reading 11-1
         SuperPlus-2 reading 11-2
         last_update reading 07
         open_days-1 reading 05-1
         open_days-2 reading 05-2
         open_days-3 reading 05-3
         open_hours-1 reading 06-1
         open_hours-2 reading 06-2
         open_hours-3 reading 06-3
Attributes:
   alias      ARAL in Karken (Roermonder Str.)
   enableControlSet 1
   event-min-interval .*:1800
   event-on-change-reading .*
   group      Informationen
   httpVersion 1.1
   icon       fuel
   model      clever_tanken_single_station
   reading01Name Name
   reading01Regex <span class="strong-title" itemprop="name">(.*)</span>
   reading02Name Strasse
   reading02Regex <span itemprop="streetAddress">(.*)</span>
   reading03Name PLZ
   reading03Regex <span itemprop="http://schema.org/postalCode">(.*)</span>
   reading04Name Ort
   reading04Regex <span itemprop="http://schema.org/addressCountry">(.*)</span>
   reading05Name open_days
   reading05RegOpt g
   reading05Regex <div class="d-flex justify-content-between weak-body">\s*<span>\s*(.*)<\/span>
   reading06Name open_hours
   reading06RegOpt g
   reading06Regex <div class="d-flex justify-content-between weak-body">\s*<span>\s*.*<\/span>\s*<span>\s*(.*)<\/span>
   reading07Name last_update
   reading07Regex <span>Letzte Aktualisierung: (.*)</span>
   reading08Name Diesel
   reading08OExpr { ($val < 0.25) ? ReadingsNum($name,"Diesel-1",0) : $val }
   reading08Regex <div[^>]*class="price-type-name"[^>]*>Diesel<\/div>[\s\S]*?<span[^>]*id="current-price-\d+"[^>]*>([\d.]+)<\/span>[\s\S]*?<sup[^>]*id="suffix-price-\d+"[^>]*>(\d+)<\/sup>
   reading09Name SuperE10
   reading09OExpr { ($val < 0.25) ? ReadingsNum($name,"SuperE10-1",0) : $val }
   reading09Regex <div[^>]*class="price-type-name"[^>]*>Super E10<\/div>[\s\S]*?<span[^>]*id="current-price-\d+"[^>]*>([\d.]+)<\/span>[\s\S]*?<sup[^>]*id="suffix-price-\d+"[^>]*>(\d+)<\/sup>
   reading10Name SuperE5
   reading10OExpr { ($val < 0.25) ? ReadingsNum($name,"SuperE5-1",0) : $val }
   reading10Regex <div[^>]*class="price-type-name"[^>]*>Super E5<\/div>[\s\S]*?<span[^>]*id="current-price-\d+"[^>]*>([\d.]+)<\/span>[\s\S]*?<sup[^>]*id="suffix-price-\d+"[^>]*>(\d+)<\/sup>
   reading11Name SuperPlus
   reading11OExpr { ($val < 0.25) ? ReadingsNum($name,"SuperPlus-1",0) : $val }
   reading11Regex <div[^>]*class="price-type-name"[^>]*>ARAL Superplus<\/div>[\s\S]*?<span[^>]*id="current-price-\d+"[^>]*>([\d.]+)<\/span>[\s\S]*?<sup[^>]*id="suffix-price-\d+"[^>]*>(\d+)<\/sup>
   reading12Name LPG
   reading12OExpr { ($val < 0.25) ? ReadingsNum($name,"LPG-1",0) : $val }
   reading12Regex <div[^>]*class="price-type-name"[^>]*>LPG<\/div>[\s\S]*?<span[^>]*id="current-price-\d+"[^>]*>([\d.]+)<\/span>[\s\S]*?<sup[^>]*id="suffix-price-\d+"[^>]*>(\d+)<\/sup>
   reading13Name LNG
   reading13OExpr { ($val < 0.25) ? ReadingsNum($name,"LNG-1",0) : $val }
   reading13Regex <div[^>]*class="price-type-name"[^>]*>LNG<\/div>[\s\S]*?<span[^>]*id="current-price-\d+"[^>]*>([\d.]+)<\/span>[\s\S]*?<sup[^>]*id="suffix-price-\d+"[^>]*>(\d+)<\/sup>
   reading14Name CNG
   reading14OExpr { ($val < 0.25) ? ReadingsNum($name,"CNG-1",0) : $val }
   reading14Regex <div[^>]*class="price-type-name"[^>]*>CNG<\/div>[\s\S]*?<span[^>]*id="current-price-\d+"[^>]*>([\d.]+)<\/span>[\s\S]*?<sup[^>]*id="suffix-price-\d+"[^>]*>(\d+)<\/sup>
   reading15Name Bioethanol
   reading15OExpr { ($val < 0.25) ? ReadingsNum($name,"Bioethanol-1",0) : $val }
   reading15Regex <div[^>]*class="price-type-name"[^>]*>Bioethanol<\/div>[\s\S]*?<span[^>]*id="current-price-\d+"[^>]*>([\d.]+)<\/span>[\s\S]*?<sup[^>]*id="suffix-price-\d+"[^>]*>(\d+)<\/sup>
   reading16Name Wasserstoff
   reading16OExpr { ($val < 0.25) ? ReadingsNum($name,"Wasserstoff-1",0) : $val }
   reading16Regex <div[^>]*class="price-type-name"[^>]*>Wasserstoff<\/div>[\s\S]*?<span[^>]*id="current-price-\d+"[^>]*>([\d.]+)<\/span>[\s\S]*?<sup[^>]*id="suffix-price-\d+"[^>]*>(\d+)<\/sup>
   readingOExpr $val =~ s/<[\d\D]+>//;;$val
   requestHeader1 User-Agent: Mozilla/5.0 WindowsNT10.0 Chrome/120.0.0.0 Safari/537.36
   room       Information->Spritpreise
   stateFormat {
  if (InternalVal($name,"LAST_ERROR","") ne "") {
    return "⚠️ FEHLER: Automatischer Abruf fehlgeschlagen! (Daten veraltet)";
  } else {
  sprintf("Super E5: %.2f € * Super E10: %.2f € * Super Plus: %.2f € * Diesel: %.2f €",
    ReadingsNum($name,"SuperE5-1",0) + 0.01,
ReadingsNum($name,"SuperE10-1",0) + 0.01,
ReadingsNum($name,"SuperPlus-1",0) + 0.01,
ReadingsNum($name,"Diesel-1",0) + 0.01) ;
  }
}
   timeout    10
   timestamp-on-change-reading .*
   userReadings Diesel_old { OldReadingsNum($name,"Diesel-1", ReadingsNum($name,"Diesel-1",0)) },
SuperE5_old { OldReadingsNum($name,"SuperE5-1", ReadingsNum($name,"SuperE5-1",0)) },
SuperE10_old { OldReadingsNum($name,"SuperE10-1", ReadingsNum($name,"SuperE10-1",0)) },
SuperPlus_old { OldReadingsNum($name,"SuperPlus-1", ReadingsNum($name,"SuperPlus-1",0)) },
LPG_old { OldReadingsNum($name,"LPG-1", ReadingsNum($name,"LPG-1",0)) },
LNG_old { OldReadingsNum($name,"LNG-1", ReadingsNum($name,"LNG-1",0)) },
CNG_old { OldReadingsNum($name,"CNG-1", ReadingsNum($name,"CNG-1",0)) },
Bioethanol_old { OldReadingsNum($name,"Bioethanol-1", ReadingsNum($name,"Bioethanol-1",0)) },
Wasserstoff_old { OldReadingsNum($name,"Wasserstoff-1", ReadingsNum($name,"Wasserstoff-1",0)) },

Diesel_complete { ReadingsNum($name,"Diesel-1", 0) + (ReadingsNum($name,"Diesel-2", 0) / 1000) },
SuperE5_complete { ReadingsNum($name,"SuperE5-1", 0) + (ReadingsNum($name,"SuperE5-2", 0) / 1000) },
SuperE10_complete { ReadingsNum($name,"SuperE10-1", 0) + (ReadingsNum($name,"SuperE10-2", 0) / 1000) },
SuperPlus_complete { ReadingsNum($name,"SuperPlus-1", 0) + (ReadingsNum($name,"SuperPlus-2", 0) / 1000) },
LPG_complete { ReadingsNum($name,"LPG-1", 0) + (ReadingsNum($name,"LPG-2", 0) / 1000) },
LNG_complete { ReadingsNum($name,"LNG-1", 0) + (ReadingsNum($name,"LNG-2", 0) / 1000) },
CNG_complete { ReadingsNum($name,"CNG-1", 0) + (ReadingsNum($name,"CNG-2", 0) / 1000) },
Bioethanol_complete { ReadingsNum($name,"Bioethanol-1", 0) + (ReadingsNum($name,"Bioethanol-2", 0) / 1000) },
Wasserstoff_complete { ReadingsNum($name,"Wasserstoff-1", 0) + (ReadingsNum($name,"Wasserstoff-2", 0) / 1000) },

Diesel_avg { ReadingsNum("Diesel","Durchschnitt",0) },
SuperE5_avg { ReadingsNum("SuperE5","Durchschnitt",0) },
SuperE10_avg { ReadingsNum("SuperE10","Durchschnitt",0) },
SuperPlus_avg { ReadingsNum("SuperPlus","Durchschnitt",0) },
LPG_avg { ReadingsNum("LPG","Durchschnitt",0) },
LNG_avg { ReadingsNum("LNG","Durchschnitt",0) },
CNG_avg { ReadingsNum("CNG","Durchschnitt",0) },
Bioethanol_avg { ReadingsNum("Bioethanol","Durchschnitt",0) },
Wasserstoff_avg { ReadingsNum("Wasserstoff","Durchschnitt",0) },

trigger_next_interval:.* { fhem("set $name interval " . (360 + int(rand(120)) - 60));; return 1;; },

   userattr   
   verbose    3
Wie man sieht werden die Readings bei Mehrfachmatches auch ohne "reading[xy]RegOpt g" mit der Erweiterung -1, -2, etc. ganz normal geschrieben. Scheint dann wohl eine Diskrepanz in der Doku zu sein.

Nachdem ich das readingsMaxAge und das readingMaxAgeReplacementMode gelöscht hatte ging es wieder Problemlos. Alle anderen Änderungen sind wahrscheinlich nicht nötig, erhöhen aber den Schutz vor einer Boterkennung.
#2
Hard- und Firmware / Aw: Rollo Funkprotokoll von Fa...
Letzter Beitrag von tostmann - 02 Juni 2026, 23:41:15
Byte 0 ist kein Inhaltsfeld, sondern der Seed deiner XOR-Entschleierung.

Deine "XOR-Anwendung" ist ein Präfix-XOR: deob = MC XOR MC[i-1], mit deob[0] = MC[0]. Gegenprobe Zeile 1:

MC   22 23 a2 93 3e e6 48 22
deob 22 01 81 31 ad d8 ae 6a   <- passt über alle 8 Bytes und alle 10 Zeilen

MC ist also das laufende XOR (Präfix-XOR) von deob. Das erste Klartextbyte hat keinen Vorgänger, die Firmware muss deob[0] pro Frame also setzen - und genau dieser Wert ist dein Byte 0. Deshalb "wandert" es scheinbar zusammenhanglos: es ist der Initialisierungswert, der die komplette Funkfolge bei jedem Druck anders aussehen lässt, obwohl deob[1..5] konstant bleibt.

Der Seed ist aber nicht zufällig, sondern an Byte 7 gekoppelt:

B0 XOR B7 = 0x40 | cnt

Obere Nibble konstant 4, untere ein sauberer 4-Bit-Zähler. Nach cnt sortiert:

cnt  B0  B7
 f   37  78
 e   30  7e
 d   39  74
 -   (c b a 9 nicht dekodiert)
 8   22  6a
 7   0f  48
 6   08  4e
 -   (5 4 nicht dekodiert)
 3   13  50
 2   14  56
 1   1d  5c
 0   1a  5a

Lückenloser +/-1-Zähler über f...0; die sechs Lücken sind schlicht nicht dekodierte Frames, und deine Listenreihenfolge ist nicht die Sendereihenfolge. Die Zählrichtung lässt sich aus dieser ungeordneten Menge nicht festlegen.

Zwei strukturelle Korrekturen:

1) Byte 6 ist B7 XOR 0xC4, nicht 0xD0. Probe Zeile 1: 6a XOR D0 = BA, tatsächlich ist B6 = AE = 6a XOR C4. Und 0xC4 = B1^B2^B3^B4^B5 (01^81^31^ad^d8). B6 ist damit das Paritätsbyte, das B1^...^B7 = 0 erzwingt - also determiniert, kein eigener Freiheitsgrad.

2) Pro Frame bleiben damit nur zwei freie Bytes, B0 und B7, und die sind über den Zähler gekoppelt. "Byte 0 isoliert dekodieren" ist deshalb die falsche Fragestellung - es ist der zählerabhängige Seed.

Was zum Senden noch fehlt, ist die exakte Abbildung cnt -> (B0, B7). Du hast eine Gleichung (B0 XOR B7 = 0x40|cnt), brauchst eine zweite, um B7(cnt) festzunageln. Aus 10 nicht-zusammenhängenden Frames bekomme ich keine saubere Inversion: die XOR-Differenzen benachbarter cnt in B7 sind meist 0x06, teils 0x0a - nicht konstant, also kein simpler linearer Shift. Das riecht nach einer Bit-Permutation des Zählers in B0/B7, ist aber Hypothese, nicht belegt.

Zum Schließen:
  • Eine lückenlose, monoton steigende Serie aufnehmen (idealerweise 16+ Drücke ohne ausgelassene Frames, in bekannter Reihenfolge) - das fittet B7(cnt) direkt.
  • Dazu eine Serie von einem zweiten Handsender / anderer Adresse, um zu trennen, welche Bits Adresse und welche Zähler tragen - und ob der Seed in B0 derselbe ist oder um die Adresse versetzt.
#3
Automatisierung / Aw: elektrotechnische Störung ...
Letzter Beitrag von Papa Romeo - 02 Juni 2026, 23:12:57
Hallo Werner,

- was sind das für Leitungen (ca. 10m lange ...)
- schaltest du HIGH-aktiv oder LOW-aktiv (nehme an HIGH-aktiv --> deine Aussage: ...eine Leitung führt ja 3.3 Volt)

LG
Papa Romeo
#4
Heizungssteuerung/Raumklima / Aw: THZ Tecalor (LWZ Stiebel E...
Letzter Beitrag von erlassen - 02 Juni 2026, 21:37:13
Hallo zusammen,

ich versuche aktuell die Kühlfunktion meiner Tecalor THZ 504 (baugleich Stiebel Eltron LWZ 504) in Betrieb zu nehmen und komme bei der Fehlersuche nicht weiter.

Die Anlage besitzt eine hydraulische Weiche mit einer externen Wilo-Yonos-PICO-Heizkreispumpe. Im Heizbetrieb funktioniert alles einwandfrei. Die Pumpe läuft, die Fußbodenheizung wird warm und das Haus wird problemlos beheizt.

Im Kühlbetrieb startet dagegen zwar der Verdichter und die Wärmepumpe erzeugt Kälte, diese scheint jedoch nicht auf den eigentlichen Heizkreis übertragen zu werden. Die Leitungen zwischen Wärmepumpe und hydraulischer Weiche werden deutlich kalt, hinter der Weiche kommt die Kälte aber kaum an. Gleichzeitig geht die Wilo-Pumpe exakt in dem Moment aus, in dem die Anlage auf Kühlbetrieb umschaltet.

Bei der Kontrolle der Verdrahtung ist mir aufgefallen, dass die Wilo-Pumpe an den Klemmen L HK2 / N HK2 angeschlossen ist. Die Klemmen L Kühl / N Kühl sind dagegen nicht belegt.

Daher meine eigentliche Frage:

Wofür sind die Ausgänge L Kühl / N Kühl vorgesehen? Werden diese im Kühlbetrieb mit 230 V versorgt? Und wie wird bei einer Anlage mit hydraulischer Weiche die externe Heizkreispumpe normalerweise im Kühlbetrieb angesteuert?

Vielleicht hat jemand eine vergleichbare Anlage oder kennt die Verdrahtung dieser Geräte.

Vielen Dank!
#5
Sonstiges / Aw: HTTPMOD liest bei Clever-T...
Letzter Beitrag von RalfRog - 02 Juni 2026, 21:36:22
Nachtrag zu deiner Einlassung oben, dass du Diesel-1,-2 erwartest.
Siehe CommandRef:
Attribut "reading[xy]RegOpt g" ist dann bei mehrfachem Auftreten von reading[xy]Name nötig.
#6
Anfängerfragen / Aw: [Gelöst] Westinghouse Deck...
Letzter Beitrag von Kai-Alfonso - 02 Juni 2026, 21:28:39
Zitat von: elektron-bbs am 02 Juni 2026, 21:23:38Welche Firmware-Version läuft auf dem SIGNALesp?


nabend - ich habe V 4.0.0 SIGNALESP cc1101 (chip CC1101) - compiled at Jan 19 2025 13:26:38
#7
Anfängerfragen / Aw: [Gelöst] Westinghouse Deck...
Letzter Beitrag von elektron-bbs - 02 Juni 2026, 21:23:38
Mhmm, eigenartig, die Nachrichten passen eigentlich, aber der SIGNALesp trennt sie nicht richtig.
In den msg, die mit "MS" beginnen, sind jeweils zwei Nachrichten enthalten. Die Nachrichten mit "MU" am Anfang werden dekodiert:
2026.06.02 18:14:54.285 4: SIGNALesp: Read, msg READredu: MS;P1=-303;P2=701;P3=298;P4=-713;P5=-7444;D=352121212121342121342121342134343434213434213434213421342121343434252121212121342121342121342134343434213434213434213421342121343434;CP=3;SP=5;R=65;O;m2;
2026.06.02 18:14:54.387 4: SIGNALesp: Read, msg READredu: MS;P1=-303;P2=704;P3=298;P4=-707;P5=-7455;D=3521212121213421213421213421343434342134342134342134213421213434342521212121213421213421213421343434342134342134342134213421213434343;CP=3;SP=5;R=65;
2026.06.02 18:15:16.574 4: SIGNALesp: Read, msg READredu: MS;P3=-307;P4=694;P5=299;P6=-707;P7=-7478;D=574343434343564343564343564356565656435656435656435643435643564343474343434343564343564343564356565656435656435656435643435643564343;CP=5;SP=7;R=49;O;m2;
2026.06.02 18:15:16.582 4: SIGNALesp: Read, msg READredu: MU;P3=-308;P4=692;P5=298;P6=-712;P7=-7478;D=5743434343435643435643435643565656564356564356564356434356435643434;CP=5;R=49;
2026.06.02 18:15:16.590 4: SIGNALesp: Parse_MU, Fingerprint for MU protocol id 20.1 -> RCnoName20 matches, trying to demodulate
2026.06.02 18:15:16.591 4: SIGNALesp: Parse_MU, Decoded matched MU protocol id 20.1 dmsg P20#FB68496B length 32 dispatch(1/4) RSSI = -49.5
2026.06.02 18:15:16.592 4: SIGNALesp: SD_UT protocol 20, bitData 11111011011010000100100101101011, hlen 8
2026.06.02 18:15:16.593 1: SIGNALesp: SD_UT_Parse UNDEFINED sensor RCnoName20_15 detected, protocol 20, data FB68496B, code FB684

Welche Firmware-Version läuft auf dem SIGNALesp?
#8
Sonstiges / Aw: HTTPMOD liest bei Clever-T...
Letzter Beitrag von Jamo - 02 Juni 2026, 21:18:07
Hier mal eine Referenz mit Tankstellen im Umkreis von latitude/longitude.
Vielleicht hilft.
defmod CleverTanken HTTPMOD https://www.clever-tanken.de/tankstelle_liste?spritsorte=7&r=5&lat=48.5&lon=11.9&sort=p 0
attr CleverTanken comment Debuggen geht indem du deinen clever-tanken Link öffnest, \
Quelltext anzeigen lässt und diesen dann in das Textfeld auf https://regex101.com kopierst. \
Das RegEx kommt in die Eingabezeile ganz oben und rechts siehst du das Ergebnis.\
spritsorte=7\
1 = Autogas\
2 = LKW-Diesel\
3 = Diesel\
4 = Bioethanol\
5 = SuperE10\
6 = SuperPlus\
7 = SuperE5\
8 = Erdgas
attr CleverTanken enableControlSet 1
attr CleverTanken reading01DeleteIfUnmatched 1
attr CleverTanken reading01Name Tankstellenname
attr CleverTanken reading01RegOpt g
attr CleverTanken reading01Regex <span class=\"fuel-station-location-name\">(.*)<\/span>
attr CleverTanken reading02DeleteIfUnmatched 1
attr CleverTanken reading02Name Preis
attr CleverTanken reading02RegOpt g
attr CleverTanken reading02Regex <div class=\"price-text price text-color-ct-blue\">(?>\s*)(\d.*)<sup>
attr CleverTanken reading03DeleteIfUnmatched 1
attr CleverTanken reading03Name Strasse
attr CleverTanken reading03RegOpt g
attr CleverTanken reading03Regex <div class=\"fuel-station-location-street\">(.*)<\/div>
attr CleverTanken reading04DeleteIfUnmatched 1
attr CleverTanken reading04Name Ort
attr CleverTanken reading04RegOpt g
attr CleverTanken reading04Regex <div class=\"fuel-station-location-city\">(.*)<\/div>
attr CleverTanken reading05DeleteIfUnmatched 1
attr CleverTanken reading05Name Entfernung
attr CleverTanken reading05RegOpt g
attr CleverTanken reading05Regex <div class=\"fuel-station-location-distance d-flex justify-content-end\">(?>\s*)<span>(\d.\d)
attr CleverTanken timeout 2
attr CleverTanken verbose 2
#9
FHEMWEB / Aw: Timeout bei umfangreicher ...
Letzter Beitrag von quartz - 02 Juni 2026, 21:15:27
ZitatDas hat mir gefehlt, damit konnte ich das Problem nachstellen.
Ich habe den Patch-Vorschlag uebernommen und eingecheckt.
Prima, dann war es nützlich, auch wenn - wie sich für mich erst in der Diskussion zeigte - nur wenige Systeme davon betroffen waren.

Ohne eine evtl. Diskussion über die Länge / Parametrisierbarkeit des Timeouts abwürgen zu wollen, markiere ich das Thema schon mal als gelöst.
#10
Heizungssteuerung/Raumklima / Aw: WOLF eBus Allgemein
Letzter Beitrag von Resi - 02 Juni 2026, 21:06:28
Hallo zusammen,

möchte auf eine fertige ebusd-Konfiguration für die Wolf CGG-2-18 mit BM-Modul hinweisen,
die ich unter ebusd v26 mit Home Assistant im Einsatz habe.

Vollständiger Stack inkl. MQTT Auto-Discovery für Home Assistant:
https://github.com/realResi/ebusd-wolf-cgg2

Enthalten sind HG-Parameter (lesen + schreiben), Betriebsdaten, Fehlerhistorie HG80–89,
Außentemperatur via Funk-Empfänger, BM-Broadcast-Dekodierung sowie ein paar
Hinweise zu bekannten Eigenheiten der CGG-2 (kein --scanconfig, kein
Rücklauftemperatur-Sensor, BM verliert Uhrzeit nach Stromausfall).

Eine abgespeckte Version (nur CSV) wurde außerdem in puni2ks Sammlung aufgenommen:
https://github.com/puni2k/ebusd-configuration-wolf

Vielleicht hilft das dem ein oder anderen weiter.