[gelöst] userReadings Perl mehrere Readings gleichzeitig

Begonnen von curt, 07 August 2019, 00:11:29

Vorheriges Thema - Nächstes Thema

curt

Ich möchte nun aus einem gegebenen Reading ein neues Reading basteln. Sagen wir: Die ersten 30 Zeichen.

Für ein Reading ist das kein Hit:

attr Nina userReadings Warn_00_Wort {substr(ReadingsVal("Nina","Warn_00_Instruction",""),0,29)}


Nun sind die Ereignisse sind nummeriert, Ereignis 00, 01, 02 und so fort. Also Warn_00_Wort, Warn_01_Wort, Warn_02_Wort, ... Es wäre sehr schön, wenn man die userReadings für alle aktuellen Ereignisse in einem Rutsch erstellen (bzw. Löschen, sofern nicht mehr vorhanden) könnte.

Erster Versuch, ganz naiv:

attr Nina userReadings Warn_.*_Wort {substr(ReadingsVal("Nina","Warn_.*_Instruction",""),0,29)}


Also ".*" geht schon mal nicht. Aber wie geht es? Kann mir da bitte jemand helfen?

P.S: Typo Subject korrigiert
RPI 4 - Jeelink HomeMatic Z-Wave

amenomade

Sowas habe ich noch nie gesehen. Ich glaube nicht, dass man es kann.

Du kannst aber ein fremdes notify oder DOIF definieren, das auf Warn_.*_Instruction reagiert, und mit setreading das richtige Warn_xxx_Wort setzt ($EVTPART0 enthält das triggerne Reading. Mit substr oder ein Regex kannst Du die Nummer dann extrahieren).
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

curt

Zitat von: amenomade am 07 August 2019, 00:31:56
Sowas habe ich noch nie gesehen. Ich glaube nicht, dass man es kann.

Ich habe noch die kleine Hoffnung, dass @rudolfkoenig um die Ecke kommt und (wie ich mehrmals nachlesen durfte) entspannt ein "dochdoch, das geht so" mitteilt.

Zitat von: amenomade am 07 August 2019, 00:31:56Du kannst aber ein fremdes notify oder DOIF definieren, das auf Warn_.*_Instruction reagiert, und mit setreading das richtige Warn_xxx_Wort setzt ($EVTPART0 enthält das triggerne Reading. Mit substr oder ein Regex kannst Du die Nummer dann extrahieren).

Leider kann ich das nicht. Ehrlicherweise habe ich noch nicht einmal verstanden, was Du geschrieben hast. Wenn es nicht zu komplex und aufwendig ist, würde ich mich über ein Beispiel freuen; ich lerne am besten an Beispielen.

P.S: Bei Bedarf erkläre ich gern genauer, was und aus welchen Grund ich eigentlich vorhabe. (Ich möchte die primäre Fragestellung aber jetzt nicht verwässern.)
RPI 4 - Jeelink HomeMatic Z-Wave

amenomade

Zitat von: curt am 07 August 2019, 00:54:04
Ich habe noch die kleine Hoffnung, dass @rudolfkoenig um die Ecke kommt und (wie ich mehrmals nachlesen durfte) entspannt ein "dochdoch, das geht so" mitteilt.
Die Hoffnung stirbt zuletzt ;)

Zitat von: curt am 07 August 2019, 00:54:04

Leider kann ich das nicht. Ehrlicherweise habe ich noch nicht einmal verstanden, was Du geschrieben hast. Wenn es nicht zu komplex und aufwendig ist, würde ich mich über ein Beispiel freuen; ich lerne am besten an Beispielen.

Etwas wie:
define ntNina notify Nina:Warn_.*_Instruction.* {my $reading = $EVTPART0;; my ($num) = $EVTPART0 =~ /(\d+)/;; my $val = substr(ReadingsVal("Nina",$reading,""),0,29);; fhem("setreading Nina Warn_$num_Wort $val");;}
(nicht getestet)
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

supernova1963

Unabhängig vom Sinn ?,
ist die Lösung von amenomade vielleicht noch um das gewünschte Löschen der "alten" Readings zu ergänzen um anschließend das jeweils Aktuelle zu setzen:

...;;fhem("deletereading Nina Warn_.*_Wort ");;fhem("setreading Nina Warn_$num_Wort $val");;}

ungetestet!

frank

achtung, es wird noch schwieriger: triggern kann man nur über state oder ein "begleitendes" reading Warn_xx_EventID, da die zu untersuchenden readings keine events generieren.

ausserdem denke ich, dass die konstruktion eigentlich "verboten" ist. also ein device triggert ein notify, welches in dem triggernden device readings manipuliert (rückkopplung).  somit bleibt doch im prinzip nur userreadings, oder?

bei userreadings ist als trigger dann aber "state:" nicht möglich, sondern nur der inhalt von state. am besten ist wohl Warn_xx_EventID.

theoretisch könnten maximal 30 readings Warn_xx_... existieren. die anzahl ist variabel und die "plätze" eventuell unterschiedlich. über userreadings müsste man also 30 userreadings anlegen. dann beim triggern prüfen, ob das zu analysierende reading existiert und ggf das userreading entsprechend erzeugen.

ich hätte eigentlich auch lust auf readings manipulation bei diesem modul. zur zeit würde ich wahrscheinlich das modul verändern, da mir nichts einfaches einfällt. vielleicht ergibt sich hier ja noch etwas.

gruss frank

FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

amenomade

Zitat von: frank am 07 August 2019, 08:40:30
ausserdem denke ich, dass die konstruktion eigentlich "verboten" ist. also ein device triggert ein notify, welches in dem triggernden device readings manipuliert (rückkopplung).  somit bleibt doch im prinzip nur userreadings, oder?

Jein. So weit ich weiss unterbindet fhem die Rückkoplung, so das z.B. das Setzen von einem Wert in Reaktion auf etwas, selbst nicht die selbe Reaktion triggern kann.
GerätA:EventAufReadingX => setze GerätA:ReadingX: dies wird keine weitere Triggerung generieren, um eine endlos Schleife zu vermeiden:
Reading X hat sich geändert => ändere Reading X => Reading X hat sich geändert => ändere Reading X => Reading X hat sich geändert usw
Aber GerätA:EventAufReadingX => setze GerätA:ReadingY sollte kein Problem sein.

Zitatachtung, es wird noch schwieriger: triggern kann man nur über state oder ein "begleitendes" reading Warn_xx_EventID, da die zu untersuchenden readings keine events generieren.
Dann einfach das notify entspr. ändern: statt Nina:Warn_.*_Instruction.* im Trigger, Nina:Warn_.*_EventID.* und in dem substr das richtige Reading umsetzen.

Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

curt

Ich habe es hoffentlich richtig gemacht ($num_Wort musste auch noch deklariert werden):


define ntNina notify Nina:Warn_.*_EventID.* {my $reading = $EVTPART0;; my ($num) = $EVTPART0 =~ /(\d+)/;; my $val = substr(ReadingsVal("Nina",$reading,""),0,29);; my $num_Wort;; fhem("setreading Nina Warn_$num_Wort $val");;fhem("deletereading Nina Warn_.*_Wort ");;fhem("setreading Nina Warn_$num_Wort $val");;}


Momentan kann ich leider nicht sagen, ob das funktioniert: Es sind derzeit keine Ereignisse mit "*Instruction" vorhanden.

@frank
Eine Schleife vermag ich nicht zu erkennen: Für jedes vorhandene *Instruction-Reading wird ja ein neues Reading erzeugt, quasi kopiert.
RPI 4 - Jeelink HomeMatic Z-Wave

Wzut

Ich lese hier seit gestern mit und verstehe aber  aber nicht warum so ein brutaler Ansatz mit notify Nina:Warn_.*_EventID.* gewählt wird.
Wenn in Nina mindestens WarnCount auf event-on-change-reading gesetzt wird sollte das doch ein guter Trigger sein.
Danach würde ich alle  eigenen _Wort Readings in einem Rutsch löschen - >  fhem("deletereading Nina Warn_.*_Wort ");
und im nächsten Schritt in einer Schleife (WarnCount  > 0) die _Wort Readings neu setzen.
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

frank

warncount liefert eh nur bei change events.
dadurch bleiben aber änderungen bei gleichem warncount unberücksichtigt.
zb bei positionsverschiebungen oder bei änderung einer warnung.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

curt

Zitat von: curt am 07 August 2019, 21:12:11

define ntNina notify Nina:Warn_.*_EventID.* {my $reading = $EVTPART0;; my ($num) = $EVTPART0 =~ /(\d+)/;; my $val = substr(ReadingsVal("Nina",$reading,""),0,29);; my $num_Wort;; fhem("setreading Nina Warn_$num_Wort $val");;fhem("deletereading Nina Warn_.*_Wort ");;fhem("setreading Nina Warn_$num_Wort $val");;}


Momentan kann ich leider nicht sagen, ob das funktioniert: Es sind derzeit keine Ereignisse mit "*Instruction" vorhanden.

Das Konstrukt funktioniert leider nicht. Und ich weiß nicht wo ich nun suchen muss: Im Nina-Log stehen Sachen wie "Warn_00_EventID", also gibt es offenbar solche Events. Dem Notify hatte ich verbose-5 mitgegeben, aber das interessiert den nicht.

@Wzut
Kannst Du bitte zeigen, wie die Schleife aussehen müsste?

Zum Hintergrund:
Ich möchte die Nina-Warnmeldungen (Katastrophenschutz, das Modul ist alpha oder beta) in FTUI tabellarisch darstellen. Sowohl WarnText als auch WarnHinweis können textlich extrem lang werden, daher nutze ich dafür popup. So weit noch ganz einfach. Der WarnHinweis (...Instruction) ist aber nicht bei jeder Meldung dabei. Ich brauche aber irgendwas, was ich mit "autohide" verschwinden lassen kann.

Warte,
mir fällt während des Schreibens im bisherigen Konstrukt etwas auf:

Also die ersten 30 Anschläge von "Warn_??_Instruction" sollen für alle vorkommenden ?? kopiert werden in "Warn_??_Wort", zusätzlich sind (vorher wohl) alle alten "Warn_??_Wort" zu löschen, das ist das Ziel der Operation. Da "das" triggern" muss, steht in dem von mir nicht vollständig verstandenen Konstrukt (oben in diesem Posting) nun "Nina:Warn_.*_EventID.*". Damit fehlt aber im Konstrukt die Quelle, also "Warn_??_Instruction" ... es kann also nicht funktionieren.

Könnt ihr euch das jetzige Konstrukt bitte freundlicherweise nochmal ansehen?
RPI 4 - Jeelink HomeMatic Z-Wave

amenomade

Um die Regex fürs notify zu bestätigen, einfach den Eventmonitor öffnen, eine Zeile mit Warn_xx_EventID markieren, und auf "Create/Modify device" klicken, notify auswählen. Dann evtl. mit einigen .* anpassen.

Wenn Du sagst, es interessiert den mit verbose 5 nicht, was bedeutet es genau? Wird es getriggert aber es aktualisiert die Readings nicht wie gewünscht? Oder wird es gar nicht getriggert (siehe dann oben)
Das Konstrukt ist auf jeden Fall noch falsch: wenn  EventID triggern, dann kriegst Du in $reading Warn_nn_EventID. $num wird dann die richtige nn Zahl enthalten, aber $val muss nicht $reading (Warn_nn_EventID) lesen sondern Warn_$num_Instruction.

Die Lösung mit Schleife wäre interessant, aber dann muss man den richtigen Trigger finden: es macht keinen Sinn bei jeder Änderung eines Readings, wieder ALLES zu kalkulieren. Die Lösung mit notify würde nur das Reading mit richtigem $num neu kalkulieren. Ich weiss aber nicht genau wie Das Modul funktioniert.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

frank

in der substr funktion müsste doch das instruction reading adressiert werden, oder?

zum testen würde ich erst mal zb auf shorttext testen, da es immer kommt.
dann zb log ausgaben einbauen.
mit dem fhem befehl trigger in der eingabezeile kannst du den auslösenden event vom reading ...eventID simulieren.

wenn mit verbose=5 nichts kam, gab es vielleicht kein auslösendes event? "falsche" event attribute? zeig mal ein aktuelles list von Nina.

eventuell auch erstmal mit einem einfachen notify beginnen und nach und nach erweitern.

nutze trigger und beobachte den eventmonitor.
zb "trigger Nina Warn_00_EventID: 1234567890"

amenomade war schneller, egal.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

curt

Zitat von: frank am 09 August 2019, 11:17:44
in der substr funktion müsste doch das instruction reading adressiert werden, oder?

Ja, eigentlich ...

Zitat von: frank am 09 August 2019, 11:17:44
wenn mit verbose=5 nichts kam, gab es vielleicht kein auslösendes event? "falsche" event attribute? zeig mal ein aktuelles list von Nina.
...
nutze trigger und beobachte den eventmonitor.
zb "trigger Nina Warn_00_EventID: 1234567890"

Das landet im EventMonitor.

Ich hatte dem notify ein verbose 5 spendiert, aber in keinem möglichen Log taucht was auf.

list Nina

Internals:
   CountryCode DE
   DEF        DE 600
   FUUID      5d2bdaef-f33f-769b-129f-8cd900e076170f47
   INTERVAL   600
   INTERVALWARN 0
   NAME       Nina
   NR         1053
   STATE      Warnungen: 8 Lokal: 0
   TYPE       Nina
   URL        https://warnung.bund.de/bbk.mowas/gefahrendurchsagen.json
   VERSION    0.2.0
   .attraggr:
   .attrminint:
   READINGS:
     2019-08-09 20:19:59   NewWarnings     0
     2019-08-09 20:09:59   WarnCount       8
     2019-08-01 14:32:31   WarnCountInArea 0
     2019-08-09 21:57:12   WarnLevelMax    3
     2019-08-09 01:29:51   Warn_00_Area    Brandenburg
     2019-08-09 01:29:51   Warn_00_Category Met
     2019-08-09 01:29:51   Warn_00_Contact Landesamt für Umwelt Brandenburg Referat Hydrologischer Landesdienst
     2019-08-09 21:57:12   Warn_00_Creation 2019-08-09T21:50:00+02:00
     2019-08-09 21:57:12   Warn_00_Distance 7.57528784923368
     2019-08-09 21:57:12   Warn_00_End     2019-08-10T22:50:00+02:00
     2019-08-09 01:29:51   Warn_00_Event   Hochwasserinformation
     2019-08-09 01:29:51   Warn_00_EventID HOCHWASSERZENTRALEN.DE.BB
     2019-08-09 01:29:51   Warn_00_Geocode Barnim
     2019-08-09 01:29:51   Warn_00_LongText Es liegt eine Hochwasserwarnung oder -information für das Flussgebiet Stepenitz vor!
     2019-08-09 01:29:51   Warn_00_MsgType Alert
     2019-08-09 01:29:51   Warn_00_Sender  CAP@hochwasserzentralen.de
     2019-08-09 01:29:51   Warn_00_Severity Severe
     2019-08-09 01:29:51   Warn_00_ShortText Hochwasserinformation Brandenburg
     2019-08-09 01:29:51   Warn_01_Area    Mittelsachsen
     2019-08-09 01:29:51   Warn_01_Category Other
     2019-08-09 01:29:51   Warn_01_Creation 2019-07-04T07:45:37+02:00
     2019-08-09 21:57:12   Warn_01_Distance 103.533288040297
     2019-08-09 01:29:51   Warn_01_End     2019-09-05T08:00:00+02:00
     2019-08-09 01:29:51   Warn_01_Event   4
     2019-08-09 01:29:51   Warn_01_EventID BIWAPP-36634
     2019-08-09 01:29:51   Warn_01_Geocode Mittelsachsen
     2019-08-09 01:29:51   Warn_01_LongText Der Sperrkreis umfasst:<br>die Stadt Mittweida und die Ortsteile Frankenau, Lauenhain und Rößgen<br>die Gemeinde Altmittweida<br>den Ortsteil Erlau der Gemeinde Erlau<br>&nbsp;<br>Damit ist das Verbringen von Bienen aus oder in den Sperrbezirk ist verboten.<br>Jeder Halter von Bienen hat seinen Bestand unter Angabe der Anzahl der Bienenvölker und ihres Standortes dem Lebensmittelüberwachungs- und Veterinäramt (LÜVA) Mittelsachsen anzuzeigen. Die Anzeige kann entfallen, wenn der Halter von Bienen seinen Bestand dem LÜVA Mittelsachsen bereits mitgeteilt hat.&nbsp;<br><br>Die Amerikanische Faulbrut ist für den Menschen nicht gefährlich. Honig kann selbst von erkrankten Völkern unbedenklich verzehrt werden.<br><br>Die komplette Bekanntmachung ist im elektronischen Amtsblatt veröffentlicht:<br>https://www.landkreis-mittelsachsen.de/amtsblatt/702019e-amerikanische-faulbrut-bei-bienen-in-mittweida-amtlich-festgestellt.html
     2019-08-09 01:29:51   Warn_01_MsgType Alert
     2019-08-09 01:29:51   Warn_01_Sender  CAP@biwapp.de
     2019-08-09 01:29:51   Warn_01_Sendername Landratsamt Mittelsachsen
     2019-08-09 01:29:51   Warn_01_Severity Minor
     2019-08-09 01:29:51   Warn_01_ShortText Bienenkrankheit: Amerikanische Faulbrut in Mittweida festgestellt
     2019-08-09 20:09:59   Warn_02_Area    Peine
     2019-08-09 18:19:59   Warn_02_Category Safety
     2019-08-09 20:09:59   Warn_02_Creation 2019-08-07T11:08:05+02:00
     2019-08-09 21:57:12   Warn_02_Distance 155.994076285864
     2019-08-09 20:09:59   Warn_02_End     2019-08-20T11:02:00+02:00
     2019-08-09 18:19:59   Warn_02_Event   8
     2019-08-09 20:09:59   Warn_02_EventID BIWAPP-37952
     2019-08-09 20:09:59   Warn_02_Geocode Peine
     2019-08-09 20:09:59   Warn_02_LongText Vergiftung kann lebensbedrohlich sein – Trockenfisch nicht essen<br><br>Das niedersächsische Landwirtschaftsministerium warnt vor dem Verzehr von Trockenfisch, der durch einen niedersächsischen Großhändler vermarktet wurde.<br>Es besteht die Gefahr, dass durch diesen Fisch beim Menschen die lebensbedrohliche Vergiftung Botulismus ausgelöst wird. Verbraucherinnen und Verbraucher, die Trockenfisch gekauft haben, sollten die betroffene Ware vernichten oder in ihrer Verkaufsstelle nachfragen, ob die gekaufte Ware betroffen ist.<br>Anlass der Warnung ist der Fall eines Patienten, der in der letzten Woche an Botulismus erkrankt ist. Im von dem Patienten verzehrten Trockenfisch, wurde das Toxigen nachgewiesen. Der Trockenfisch wurde durch einen im Landkreis Osnabrück ansässigen Großhändler an Einzelhändler vermarktet. Der Großhändler hat alle Märkte, die die in Rede stehende Ware erhalten haben, informiert. Die zuständigen Behörden überwachen den Vorgang.<br><br>Es handelt sich um folgende Produkte:<br>- Plötze (rutilus rutilus) unausgenommen; getrocknet und gesalzen, Mindesthaltbarkeitsdatum 12.11.2019 LOT180219<br>- Plötze (rutilus rutilus) ausgenommen; getrocknet und gesalzen, Mindesthaltbarkeitsdatum 05.03.2020 LOT180319<br>- Karausche (Carssius Gibelio) getrocknet und gesalzen, Mindesthaltbarkeitsdatum 27.05.2020 LOT170519<br>- Flussbarsch (Perca Fluvictilis) getrocknet und gesalzen, Mindesthaltbarkeitsdatum 27.05.2020 LOT170519<br>- Forelle (Oncorhynchus Mykiss) getrocknet und gesalzen, Mindesthaltbarkeitsdatum 09.03.2020 LOT140619&nbsp;<br>- Hecht (Esox lucius) getrocknet und gesalzen, Mindesthaltbarkeitsdatum 05.03.2020 LOT18.03.19<br><br>Botulismus ist eine lebensbedrohliche Vergiftung, die durch den Verzehr von verdorbenem Fleisch oder Fisch verursacht werden kann. Auslöser ist der Giftstoff Botulinumtoxin, der vom Bakterium Clostridium botulinum produziert wird. Bei Auftreten von Symptomen wie Kopfschmerzen, Übelkeit, Erbrechen, Lähmungserscheinungen der Augenlider, verschwommenes Sehen und Doppelbilder, Sprechstörungen, trockener Mund, Schlucklähmung, Durchfall, Verstopfung und Atemnot nach Verzehr von Trockenfisch sollte sofort ein Arzt aufgesucht werden. Weitere Informationen können im Internet auf der Seite <a href="https://backend.biwapp.de/meldung/www.lebensmittelwarnung.de" target="_blank" rel="noopener noreferrer">www.lebensmittelwarnung.de</a> abgerufen werden.
     2019-08-09 01:29:51   Warn_02_MsgType Alert
     2019-08-09 01:29:51   Warn_02_Sender  CAP@biwapp.de
     2019-08-09 20:09:59   Warn_02_Sendername Landkreis Peine, Pressestelle, pressebuero@landkreis-peine.de
     2019-08-09 01:29:51   Warn_02_Severity Minor
     2019-08-09 20:09:59   Warn_02_ShortText Gefahr von Botulismus: Agrarministerium warnt vor Verzehr von Trockenfisch
     2019-08-09 20:09:59   Warn_03_Area    Schaumburg
     2019-08-09 01:29:51   Warn_03_Category Safety
     2019-08-09 20:09:59   Warn_03_Creation 2019-08-08T16:19:15+02:00
     2019-08-09 21:57:12   Warn_03_Distance 223.478163983284
     2019-08-09 20:09:59   Warn_03_End     2019-08-23T16:11:00+02:00
     2019-08-09 01:29:51   Warn_03_Event   8
     2019-08-09 20:09:59   Warn_03_EventID BIWAPP-37994
     2019-08-09 20:09:59   Warn_03_Geocode Schaumburg
     2019-08-09 20:09:59   Warn_03_LongText Das Amt für Verbraucherschutz- und Veterinärwesen des Landkreises Schaumburg gibt nachfolgende öffentliche Warnung bekannt:<br>&nbsp;<br>Gefahr von Botulismus.<br>Es wird vor dem Verzehr von Trockenfisch gewarnt.<br>Vergiftung kann lebensbedrohlich sein.<br>&nbsp;<br>Die Firma Ozean Fischgroßhandel GmbH in Ostercappeln warnt eindringlich vor dem Verzehr von Trockenfisch der Arten ,,Plötze unausgenommen, ausgenommen, Karauschen, Flussbarsch, Forelle, Hecht, alle getrocknet und gesalzen", die insbesondere in russischen Einkaufsmärkten angeboten werden.<br>&nbsp;<br>Nachfolgende Chargen können betroffen sein:<br>Plötze (rutilus rutilus) unausgenommen; getrocknet und gesalzen<br>MHD12.11.2019 LOT180219<br>Plötze (rutilus rutilus) ausgenommen; getrocknet und gesalzen<br>MHD05.03.2020 LOT180319<br>Karauschen (Carssius Gibelio) getrocknet und gesalzen<br>MHD27.05.2020 LOT170519<br>Flussbarsch (Perca Fluvictilis) getrocknet und gesalzen<br>MHD27.05.2020 LOT170519<br>Forelle (Oncorhynchus Mykiss) getrocknet und gesalzen<br>MHD09.03.2020 LOT140619<br>Hecht (Esox lucius) getrocknet und gesalzen<br>MHD 05.03.2020 LOT18.03.19<br>&nbsp;<br>Im Bereich des Landkreises Schaumburg wurde der Einzelhandelsbetrieb "Armenia", Mindener Str. 3, 31737 Rinteln, mit 12 Kilogramm unausgenommenen Plötzen beliefert, von denen 7 Kilogramm an einzelne Kunden verkauft wurden. Es ist nicht auszuschließen, dass durch das Essen des Trockenfisches beim Menschen die lebensbedrohliche Vergiftung Botulismus ausgelöst wird.<br>&nbsp;<br>Wer Symptome wie ungewöhnliche Kopfschmerzen und Übelkeit, Erbrechen, Bauchkrämpfe, Durchfall oder Lähmungserscheinungen verspürt, sollte sofort einen Arzt aufsuchen. Lähmungen betreffen in den meisten Fällen zunächst die Augen und das Sehvermögen, die Augenlider können dann oft nicht mehr bewegt werden. Weitere Symptome können Sprechstörungen, ein trockener Mund, Schlucklähmungen oder Atemnot sein.<br>&nbsp;<br>Anlass der Warnung ist die Erkrankung eines Patienten im Landkreis Lippe, bei dem das Gift im Blut nachgewiesen worden war. Es konnte nicht näher bestimmt werden, welche Art von Fisch der Erkrankte gegessen hat. Deshalb warnt die Firma Ozean vorsorglich vor dem Verzehr von allen Trockenfischen, die an den Markt geliefert wurden, in dem der Patient eingekauft hat.<br>&nbsp;<br>&nbsp;
     2019-08-09 01:29:51   Warn_03_MsgType Alert
     2019-08-09 01:29:51   Warn_03_Sender  CAP@biwapp.de
     2019-08-09 20:09:59   Warn_03_Sendername Pressestelle
     2019-08-09 01:29:51   Warn_03_Severity Minor
     2019-08-09 20:09:59   Warn_03_ShortText Landkreis Schaumburg warnt vor Gefahr von Botulismus durch Trockenfisch
     2019-08-09 20:09:59   Warn_04_Area    Nienburg (Weser)
     2019-08-09 01:29:51   Warn_04_Category Safety
     2019-08-09 20:09:59   Warn_04_Creation 2019-08-07T11:23:07+02:00
     2019-08-09 21:57:12   Warn_04_Distance 227.56035350395
     2019-08-09 20:09:59   Warn_04_End     2019-08-29T11:17:00+02:00
     2019-08-09 01:29:51   Warn_04_Event   8
     2019-08-09 20:09:59   Warn_04_EventID BIWAPP-37954
     2019-08-09 20:09:59   Warn_04_Geocode Nienburg (Weser)
     2019-08-09 20:09:59   Warn_04_LongText Gefahr von Botulismus: Agrarministerium warnt vor Verzehr von Trockenfisch<br>Vergiftung kann lebensbedrohlich sein – Trockenfisch nicht essen<br><br>Das niedersächsische Landwirtschaftsministerium warnt vor dem Verzehr von Trockenfisch, der durch einen niedersächsischen Großhändler vermarktet wurde.<br>Es besteht die Gefahr, dass durch diesen Fisch beim Menschen die lebensbedrohliche Vergiftung Botulismus ausgelöst wird. Verbraucherinnen und Verbraucher, die Trockenfisch gekauft haben, sollten die betroffene Ware vernichten oder in ihrer Verkaufsstelle nachfragen, ob die gekaufte Ware betroffen ist.<br>Anlass der Warnung ist der Fall eines Patienten, der in der letzten Woche an Botulismus erkrankt ist. Im von dem Patienten verzehrten Trockenfisch wurde das Toxigen nachgewiesen. Der Trockenfisch wurde durch einen im Landkreis Osnabrück ansässigen Großhändler an Einzelhändler vermarktet. Der Großhändler hat alle Märkte, die die in Rede stehende Ware erhalten haben, informiert. Die zuständigen Behörden überwachen den Vorgang.<br><br>Es handelt sich um folgende Produkte:<br>•&nbsp;&nbsp; &nbsp;Plötze (rutilus rutilus) unausgenommen; getrocknet und gesalzen,<br>Mindesthaltbarkeitsdatum 12.11.2019 LOT180219<br>•&nbsp;&nbsp; &nbsp;Plötze (rutilus rutilus) ausgenommen; getrocknet und gesalzen<br>Mindesthaltbarkeitsdatum 05.03.2020 LOT180319<br>•&nbsp;&nbsp; &nbsp;Karausche (Carssius Gibelio) getrocknet und gesalzen<br>Mindesthaltbarkeitsdatum 27.05.2020 LOT170519<br>•&nbsp;&nbsp; &nbsp;Flussbarsch (Perca Fluvictilis) getrocknet und gesalzen<br>Mindesthaltbarkeitsdatum 27.05.2020 LOT170519<br>•&nbsp;&nbsp; &nbsp;Forelle (Oncorhynchus Mykiss) getrocknet und gesalzen<br>Mindesthaltbarkeitsdatum 09.03.2020 LOT140619<br>•&nbsp;&nbsp; &nbsp;Hecht (Esox lucius) getrocknet und gesalzen<br>Mindesthaltbarkeitsdatum 05.03.2020 LOT18.03.19<br><br>Botulismus ist eine lebensbedrohliche Vergiftung, die durch den Verzehr von verdorbenem Fleisch oder Fisch verursacht werden kann. Auslöser ist der Giftstoff Botulinumtoxin, der vom Bakterium Clostridium botulinum produziert wird. Bei Auftreten von Symptomen wie Kopfschmerzen, Übelkeit, Erbrechen, Lähmungserscheinungen der Augenlider, verschwommenes Sehen und Doppelbilder, Sprechstörungen, trockener Mund, Schlucklähmung, Durchfall, Verstopfung und Atemnot nach Verzehr von Trockenfisch sollte sofort ein Arzt aufgesucht werden. Weitere Informationen können im Internet auf der Seite www.lebensmittelwarnung.de abgerufen werden.<br><br>&nbsp;
     2019-08-09 01:29:51   Warn_04_MsgType Alert
     2019-08-09 01:29:51   Warn_04_Sender  CAP@biwapp.de
     2019-08-09 20:09:59   Warn_04_Sendername Landkreis Nienburg/Weser - Pressestelle
     2019-08-09 01:29:51   Warn_04_Severity Minor
     2019-08-09 20:09:59   Warn_04_ShortText Gefahr von Botulismus: Agrarministerium warnt vor Verzehr von Trockenfisch
     2019-08-09 20:09:59   Warn_05_Area    Harburg
     2019-08-09 01:29:51   Warn_05_Category Safety
     2019-08-09 20:09:59   Warn_05_Creation 2019-07-04T09:34:32+02:00
     2019-08-09 21:57:12   Warn_05_Distance 238.317656581865
     2019-08-09 20:09:59   Warn_05_End     2019-09-04T09:24:00+02:00
     2019-08-09 01:29:51   Warn_05_Event   8
     2019-08-09 20:09:59   Warn_05_EventID BIWAPP-36637
     2019-08-09 20:09:59   Warn_05_Geocode Harburg
     2019-08-09 20:09:59   Warn_05_LongText Während der Badesaison überprüft das Kreisgesundheitsamt regelmäßig die Qualität des Badeteichs Ramelsloh, des Meckelfelder Pulvermühlenteichs, des Sees im Großen Moor Hörsten, des Sees im Maschener Moor und des Badeteichs Holm-Seppensen.<br>Badende haben nun nach dem Besuch des Badeteichs Ramelsloh mehrere Fälle von Zerkariendermatitis gemeldet. Mitarbeiter der Gemeinde Seevetal haben auf Hinweis der Kreisverwaltung an den Teichzugängen entsprechende Hinweisschilder aufgestellt. Das Gesundheitsamt rät, die darauf angegebenen Verhaltensweisen zu beachten.<br>Zerkarien sind Wurmlarven. Zunächst gelangen Wurmeier durch den Kot von Wasservögeln in Gewässer und wachsen in Wasserschnecken zu Larven (Zerkarien) heran. Diese Larven können bei Hautkontakt zu Menschen starken Juckreiz verursachen, der in der Regel bald wieder nachlässt. Bei mehrfachem Kontakt reagiert die Haut mit stärkerem Juckreiz und einer rötlichen Quaddel- oder Papelbildung, die jedoch nach zehn bis 20 Tagen wieder abheilen. Eine Zerkariendermatitis ist also unangenehm und lästig, in der Regel jedoch harmlos. Um Beeinträchtigungen zu vermeiden, rät das Gesundheitsamt, Enten nicht zu füttern, wasserfeste Sonnenschutzmittel zu verwenden, sich nach dem Baden kräftig abzutrocknen, um Larven von der Haut zu entfernen, feuchte Badekleidung zügig auszuziehen sowie Kratzen und damit Wundinfektionen zu vermeiden. Aktuell gibt es gibt es keine wirksame, ökologische vertretbare Bekämpfungsmethode.<br>Bei Fragen stehen die Mitarbeiterinnen und Mitarbeiter des Gesundheitsamts telefonisch (04171- 693-626) oder per E-Mail (<a href="https://cms.kreis-wl.de/cont/meldungen_edit.php?id=MS45NjQzMzc1MTkyNzE2&amp;typ=1&amp;such_medium=-1&amp;such_typ=1&amp;such_p=2&amp;such_f=ca.createtime&amp;such_r=desc&amp;such_own=0&amp;such_published=0&amp;such_res=0&amp;such_portal=&amp;such_filter_portalzuordnung=0#" target="_blank" rel="noopener noreferrer">gesundheitsamt@lkharburg.de</a>) gerne zur Verfügung.
     2019-08-09 01:29:51   Warn_05_MsgType Alert
     2019-08-09 01:29:51   Warn_05_Sender  CAP@biwapp.de
     2019-08-09 20:09:59   Warn_05_Sendername Landkreis Harburg - Presse- und Öffentlichkeitsarbeit
     2019-08-09 01:29:51   Warn_05_Severity Minor
     2019-08-09 20:09:59   Warn_05_ShortText Zerkarienwarnung für den Badeteich Ramelsloh
     2019-08-09 20:09:59   Warn_06_Area    Diepholz
     2019-08-09 01:29:51   Warn_06_Category Safety
     2019-08-09 20:09:59   Warn_06_Creation 2019-08-07T13:46:46+02:00
     2019-08-09 21:57:12   Warn_06_Distance 261.701943188995
     2019-08-09 20:09:59   Warn_06_End     2019-08-31T13:45:00+02:00
     2019-08-09 01:29:51   Warn_06_Event   8
     2019-08-09 20:09:59   Warn_06_EventID BIWAPP-37961
     2019-08-09 20:09:59   Warn_06_Geocode Diepholz
     2019-08-09 20:09:59   Warn_06_LongText Gefahr von Botulismus: Agrarministerium warnt vor Verzehr von Trockenfisch<br>Vergiftung kann lebensbedrohlich sein – Trockenfisch nicht essen<br><br>Das niedersächsische Landwirtschaftsministerium warnt vor dem Verzehr von Trockenfisch, der durch einen niedersächsischen Großhändler vermarktet wurde.<br>Es besteht die Gefahr, dass durch diesen Fisch beim Menschen die lebensbedrohliche Vergiftung Botulismus ausgelöst wird. Verbraucherinnen und Verbraucher, die Trockenfisch gekauft haben, sollten die betroffene Ware vernichten oder in ihrer Verkaufsstelle nachfragen, ob die gekaufte Ware betroffen ist.<br>Anlass der Warnung ist der Fall eines Patienten, der in der letzten Woche an Botulismus erkrankt ist. Im von dem Patienten verzehrten Trockenfisch wurde das Toxigen nachgewiesen. Der Trockenfisch wurde durch einen im Landkreis Osnabrück ansässigen Großhändler an Einzelhändler vermarktet. Der Großhändler hat alle Märkte, die die in Rede stehende Ware erhalten haben, informiert. Die zuständigen Behörden überwachen den Vorgang.<br><br>Es handelt sich um folgende Produkte:<br>•&nbsp;&nbsp; &nbsp;Plötze (rutilus rutilus) unausgenommen; getrocknet und gesalzen,<br>Mindesthaltbarkeitsdatum 12.11.2019 LOT180219<br>•&nbsp;&nbsp; &nbsp;Plötze (rutilus rutilus) ausgenommen; getrocknet und gesalzen<br>Mindesthaltbarkeitsdatum 05.03.2020 LOT180319<br>•&nbsp;&nbsp; &nbsp;Karausche (Carssius Gibelio) getrocknet und gesalzen<br>Mindesthaltbarkeitsdatum 27.05.2020 LOT170519<br>•&nbsp;&nbsp; &nbsp;Flussbarsch (Perca Fluvictilis) getrocknet und gesalzen<br>Mindesthaltbarkeitsdatum 27.05.2020 LOT170519<br>•&nbsp;&nbsp; &nbsp;Forelle (Oncorhynchus Mykiss) getrocknet und gesalzen<br>Mindesthaltbarkeitsdatum 09.03.2020 LOT140619<br>•&nbsp;&nbsp; &nbsp;Hecht (Esox lucius) getrocknet und gesalzen<br>Mindesthaltbarkeitsdatum 05.03.2020 LOT18.03.19<br><br>Botulismus ist eine lebensbedrohliche Vergiftung, die durch den Verzehr von verdorbenem Fleisch oder Fisch verursacht werden kann. Auslöser ist der Giftstoff Botulinumtoxin, der vom Bakterium Clostridium botulinum produziert wird. Bei Auftreten von Symptomen wie Kopfschmerzen, Übelkeit, Erbrechen, Lähmungserscheinungen der Augenlider, verschwommenes Sehen und Doppelbilder, Sprechstörungen, trockener Mund, Schlucklähmung, Durchfall, Verstopfung und Atemnot nach Verzehr von Trockenfisch sollte sofort ein Arzt aufgesucht werden. Weitere Informationen können im Internet auf der Seite www.lebensmittelwarnung.de abgerufen werden.
     2019-08-09 01:29:51   Warn_06_MsgType Alert
     2019-08-09 01:29:51   Warn_06_Sender  CAP@biwapp.de
     2019-08-09 20:09:59   Warn_06_Sendername Landkreis Diepholz, Fachdienst Veterinärwesen und Verbraucherschutz
     2019-08-09 01:29:51   Warn_06_Severity Minor
     2019-08-09 20:09:59   Warn_06_ShortText Gefahr von Botulismus: Agrarministerium warnt vor Verzehr von Trockenfisch
     2019-08-09 20:09:59   Warn_07_Area    Baden-Württemberg
     2019-08-09 20:09:59   Warn_07_Category Met
     2019-08-09 20:09:59   Warn_07_Contact Landesanstalt für Umwelt Baden-Württemberg Hochwasser-Vorhersage-Zentrale
     2019-08-09 21:57:12   Warn_07_Creation 2019-08-09T21:47:00+02:00
     2019-08-09 21:57:12   Warn_07_Distance 316.447834095783
     2019-08-09 21:57:12   Warn_07_End     2019-08-10T22:47:00+02:00
     2019-08-09 20:09:59   Warn_07_Event   Hochwasserinformation
     2019-08-09 20:09:59   Warn_07_EventID HOCHWASSERZENTRALEN.DE.BW
     2019-08-09 20:09:59   Warn_07_Geocode Alb-Donau-Kreis
     2019-08-09 20:09:59   Warn_07_LongText Ab Freitag Abend sind aufgrund von lokal teils extrem heftigen Starkregen starke Wasserstandsanstiege in den davon betroffenen Bächen und kleinen Flüssen möglich. Auch abseits von Gewässerläufen können sich im Einzelfall schnelle lokale Überflutungen entwickeln, z.B. von Unterführungen, Tiefgaragen oder Straßen. Bitte beachten Sie auch die aktuellen Wetterwarnungen.
     2019-08-09 01:29:51   Warn_07_MsgType Alert
     2019-08-09 20:09:59   Warn_07_Sender  CAP@hochwasserzentralen.de
     2019-08-09 18:19:59   Warn_07_Sendername Landkreis Diepholz, Fachdienst Veterinärwesen und Verbraucherschutz
     2019-08-09 20:09:59   Warn_07_Severity Severe
     2019-08-09 20:09:59   Warn_07_ShortText Hochwasserinformation Baden-Württemberg
     2019-08-09 21:57:11   currentIntervalMode normal
     2019-08-09 21:57:12   durationFetchReadings 1.68
     2019-08-09 21:57:12   lastConnection  115 values captured in 1.68 s
     2019-08-09 21:57:12   state           Warnungen: 8 Lokal: 0
   fhem:
     LOCAL      0
   helper:
     RUNNING_PID:
       abortFn    Nina_Aborted
       arg        Nina
       bc_pid     3
       finishFn   Nina_Done
       fn         Nina_Run
       pid        DEAD:554
       telnet     telnetForBlockingFn_1565380622_127.0.0.1_50348
       terminated 1
       timeout    120
       abortArg:
Attributes:
   disableDWD 1
   distance   350
   latitude   51.92504
   longitude  12.67523
   readingsSupervision 900,,lastConnection
   room       05 Die Lage
   verbose    2

RPI 4 - Jeelink HomeMatic Z-Wave

amenomade

Was kommt, wenn Du im Eventmonitor eine Zeile mit Warn_xx_EventID markierst, und auf "Create/Modify device" klickst, und notify auswählst. Wie sieht die vorgeschlagene DEF aus?
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

curt

Markierte Zeile
2019-08-09 23:43:20 Nina Nina Warn_01_EventID: BIWAPP-36634

with exactly this event
define Nina_notify_1 notify Nina:Warn_01_EventID:.BIWAPP-36634 {}

with any number matching
define Nina_notify_1 notify Nina:Warn_01_EventID:.BIWAPP.* {}

HINT: An Stelle von BIWAPP kann auch anderes stehen, Beispiel:
2019-08-09 23:43:20 Nina Nina Warn_07_EventID: HOCHWASSERZENTRALEN.DE.BW
RPI 4 - Jeelink HomeMatic Z-Wave

amenomade

Dann sollte define ntNina notify Nina:Warn_.*_EventID.* doch triggern.
Poste mal bitte ein "list" vom notify
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

curt

Bitte bedenken: Eigentlich sollen die ersten 30 Zeichen von Warn_??_Instruction in je ein neues Reading kopiert werden, Warn_??_Instruction kommt aber in dem derzeitigen Konstrukt gar nicht vor.

list ntNina

Internals:
   .COMMAND   {my $reading = $EVTPART0; my ($num) = $EVTPART0 =~ /(\d+)/; my $val = substr(ReadingsVal("Nina",$reading,""),0,29); my $num_Wort; fhem("setreading Nina Warn_$num_Wort $val");fhem("deletereading Nina Warn_.*_Wort ");fhem("setreading Nina Warn_$num_Wort $val");}
   DEF        Nina:Warn_.*_EventID.* {my $reading = $EVTPART0; my ($num) = $EVTPART0 =~ /(\d+)/; my $val = substr(ReadingsVal("Nina",$reading,""),0,29); my $num_Wort; fhem("setreading Nina Warn_$num_Wort $val");fhem("deletereading Nina Warn_.*_Wort ");fhem("setreading Nina Warn_$num_Wort $val");}
   FUUID      5d4b14cd-f33f-769b-4fa6-d3d958168fd0b0ef
   NAME       ntNina
   NOTIFYDEV  Nina
   NR         1057
   NTFY_ORDER 50-ntNina
   REGEXP     Nina:Warn_.*_EventID.*
   STATE      2019-08-09 23:43:20
   TRIGGERTIME 1565387000.2926
   TYPE       notify
   .attraggr:
   .attrminint:
   READINGS:
     2019-08-09 21:56:59   state           active
Attributes:
   room       99 System
   verbose    5

RPI 4 - Jeelink HomeMatic Z-Wave

amenomade

#18
Also, der triggert schon:
ZitatSTATE      2019-08-09 23:43:20
   TRIGGERTIME 1565387000.2926

Zitat von: curt am 10 August 2019, 00:37:21
Bitte bedenken: Eigentlich sollen die ersten 30 Zeichen von Warn_??_Instruction in je ein neues Reading kopiert werden, Warn_??_Instruction kommt aber in dem derzeitigen Konstrukt gar nicht vor.

Das habe ich schon lange gesagt: https://forum.fhem.de/index.php/topic,102852.msg965014.html#msg965014
Zitatund in dem substr das richtige Reading umsetzen.
und wieder https://forum.fhem.de/index.php/topic,102852.msg965548.html#msg965548
ZitatDas Konstrukt ist auf jeden Fall noch falsch: wenn  EventID triggern, dann kriegst Du in $reading Warn_nn_EventID. $num wird dann die richtige nn Zahl enthalten, aber $val muss nicht $reading (Warn_nn_EventID) lesen sondern Warn_$num_Instruction.

EDIT: und wenn er wegen $num_Wort meckert, reicht es nicht, einfach in der mitte "my $num_Wort;;" zu setzen. Hast Du überhaupt verstanden, was der Beispielcode machen soll?
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

curt

Nein.

Wenn ich das selbst könnte, gäbe es diesen Thread nicht.
RPI 4 - Jeelink HomeMatic Z-Wave

amenomade

Wenn Du dich aber mit Perl nicht ein bisschen beschäftigst, wirst Du mit Fhem Schwierigkeiten haben. Du hast schon alle Teile der Lösung.

Wenn z.B. Warn_48_EventID getriggert hat:
my ($num) = $EVTPART0 =~ /(\d+)/;;      #definiert eine Variable $num mit Inhalt = die Nummer, die im triggernden Reading ($EVTPART0 = Warn_48_EventID) steht (z.B. 48)
my $quellReading = "Warn_".$num."_Instruction";;      #Kalkuliert den Name des zu lesenden Readings abhängig von $num (z.B. Warn_48_Instruction)
my $zielReading = "Warn_".$num."_Wort";;      #Kalukiert den Name des zu setzenden Readings abhängig von $num (z.B. Warn_48_Wort)
my $val = substr(ReadingsVal("Nina",$quellReading,""),0,29);;      #Extrahiert in $val die erste 30 Zeichen vom $quellReading

fhem("setreading Nina $zielReading $val");;}      #setze $zielReading vom Device Nina zu Wert $val


Das ganze kann man wahrscheinlich so kürzen, ohne unnötige Zwischenvariable:
{my ($num) = $EVTPART0 =~ /(\d+)/;; fhem("setreading Nina Warn_".$num."_Wort ".substr(ReadingsVal("Nina","Warn_".$num."_Instruction")));;}
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

curt

#21
Zitat von: frank am 09 August 2019, 11:17:44
eventuell auch erstmal mit einem einfachen notify beginnen und [...]

Danke für den Stupser - so testweise umgesetzt mit *LongText - *Instruction kommt ja selten mit und soll (das ist ja eines der Ziele der Operation) bei Nichtexistenz in FTUI/label via autohide ausgeblendet werden.

Zitat von: amenomade am 10 August 2019, 01:29:09
Wenn Du dich aber mit Perl nicht ein bisschen beschäftigst, wirst Du mit Fhem Schwierigkeiten haben.

Es ist kein Vorwurf: Du kannst nicht wissen, was ich mit Perl machte und mache. Ein WebServer "in the wild" besteht ausschließlich aus einem CGI-Interface, welches von Perl bedient wird - ich bin mir sicher, dass Du den WebServer schon kontaktiert hast. Nein, das ist kein kleines Script.

In aller demütiger Bescheidenheit scheint mir das Problem (oder auch nur mein Problem) mit FHEM und Perl zu sein, dass das nicht konsistent ist. An jeder Ecke eine Sonderlocke. Und wenn es keine Sonderlocke ist, dann liest Du bei der Recherche Beiträge des Tonfalls 'Du musst mal lernen, dass das FHEM-Perl nicht wirklich Perl ist, das ist anders'.

Ähmmm. Aha.

Zitat von: amenomade am 10 August 2019, 01:29:09
Du hast schon alle Teile der Lösung.

Ich teste mit *LongText, da *Instruction im Friedensfall eher selten mitgegeben wird (aber eine Katastrophen-Warn-Device schon auf den auf den ganz seltenen "Kriegsfall", also Katastrophenfall zugeschnitten ist), sonst könnten wir uns den Zinnober ja sparen.

Dieser Code (hier: *LongText) funktioniert:

define ntNina notify Nina:Warn_.*_EventID.* {my ($num) = $EVTPART0 =~ /(\d+)/;;;; my $quellReading = "Warn_".$num."_LongText";;;; \
my $zielReading = "Warn_".$num."_Wort";;;; my $val = substr(ReadingsVal("Nina",$quellReading,""),0,29);;;; fhem("setreading Nina $zielReading $val");;;;}


Was ich (die Zeit fehlte) noch nicht sagen kann: Wie FTUI/Label/autohide real umgeht, also ob ein Ereignis "33" noch existiert, wenn es aktuell aber nur 22 Ereignisse gibt. Der Thread ist also noch nicht erledigt.

@amenomade
Ich weiß, dass Du im Anfängerthread selbstlos hilfst: Dir gebührt mein besonderer Dank. Und ich danke allen, die uns in der Diskussion schrittweise näher zur Lösung brachten.

Ich wünsche allen ein wunderschönes Wochenende
(und drohe für die nächsten Tage einen weiteren Beitrag zur Sache an ...)
RPI 4 - Jeelink HomeMatic Z-Wave

amenomade

#22
Zitat von: curt am 10 August 2019, 05:31:43

Was ich (die Zeit fehlte) noch nicht sagen kann: Wie FTUI/Label/autohide real umgeht, also ob ein Ereignis "33" noch existiert, wenn es aktuell aber nur 22 Ereignisse gibt. Der Thread ist also noch nicht erledigt.
Das ist was ich hieroben mit "Ich weiss aber nicht genau wie Das Modul funktioniert." meinte. Wenn das so ist, dass die "Ereignisse" (sagen wir eher die Readings) irgendwie ablaufen, muss man dann ja mit einer Schleife arbeiten. Da muss man den richtigen Kompromiss finden, zwischen "ich kalkuliere alle Readings bei jedem Ereignis" und "ich kalkulieren nur diejenige, die geändert wurden".

EDIT:
ZitatDu kannst nicht wissen, was ich mit Perl machte und mache. Ein WebServer "in the wild" besteht ausschließlich aus einem CGI-Interface, welches von Perl bedient wird - ich bin mir sicher, dass Du den WebServer schon kontaktiert hast. Nein, das ist kein kleines Script.
... Bin mal neugierig... :) ???
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

curt

#23
Zwischenstand:

Bei einer testweisen Nutzung eines anderen Readings funktioniert sowohl das notify als auch die daran anknüpfende Darstellung in FTUI.

Bei dem eigentlich gewollten Quellreading (Warn_??_Instruction) ist die Sache schwieriger: Das taucht selten auf (daher will ich den Link bei Nichtexistenz ja ausblenden). Leider habe ich das Reading zu meinen Hobbyzeiten noch nicht wieder gesehen, kann also noch nicht final berichten.

Ich habe das weiter im Auge und werde bei Erfolg den von mir genutzten Code (notify sowie FTUI) hier veröffentlichen, anschließend den Thread als "gelöst" markieren.
RPI 4 - Jeelink HomeMatic Z-Wave

frank

die wettermeldungen haben, glaube ich, immer instruction.
also zum testen ideal.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

curt

Zitat von: frank am 15 August 2019, 09:50:17
die wettermeldungen haben, glaube ich, immer instruction.
also zum testen ideal.

Ahh, gut, geht. Damit also:

Das von mir genutzte notify:

define ntNina notify Nina:Warn_.*_EventID.* {my ($num) = $EVTPART0 =~ /(\d+)/;;;; my $quellReading = "Warn_".$num."_Instruction";;;; \
my $zielReading = "Warn_".$num."_Wort";;;; my $val = substr(ReadingsVal("Nina",$quellReading,""),0,29);;;; fhem("setreading Nina $zielReading $val");;;;}


Und beispielhaft in FTUI so genutzt:

     <div data-type="popup"
          data-height="350px"
          data-width="600px"
          onclick="$('.dialog-close').trigger('click');"
          class="inline">

             <div data-type="label" data-device="Nina"
        data-get="Warn_00_Wort"
        data-unit=""
        data-pre-text="&nbsp; &nbsp;"
        class="inline yellow nocache autohide" align="left">
      </div>

        <div class="dialog">
        <div data-type="label" data-device="Nina"
             data-get="Warn_00_Instruction"
             data-unit=""
             class="nocache autohide" align="left">
        </div>
       </div>
     </div>


Ich danke allen, die sich an der Diskussion beteiligten und mithalfen.

Weitere Verbesserungen, Hinweise gern gesehen.
RPI 4 - Jeelink HomeMatic Z-Wave