[gelöst] SVG-Plot "Mapping" möglich von on/off auf 1/0?

Begonnen von tklein, 13 April 2017, 21:19:13

Vorheriges Thema - Nächstes Thema

tklein

Hallo,

wie kann ich die derzeitigen Werte (on/off) meines PIR im SVG-Plot als 0/1 ausgeben lasen ohne mit zusätzlichen Dummies/Notifys bzw. die Werte im PIR Device neu zu vergeben?
Gibt es da so eine Art Mappingfunktion? If PIR eq  "on " plot 1 sozusagen. :-)

Viele Grüße
Thomas
FHEM auf Pi 3, Echo (Plus, Dot und Connect), CUL868/433, HM Komponenten, Broadlink, Enigma (VU DUO2), Alexa/Homebridge, Sonoffs (POW, RF, Basic), Wemos D1 (IR, DHT, BH1750, OLED, BMP180), IT/Steckdosen, Fritzbox mit SIP, Wifilight, MQTT, Pilight, Xiaomi Flower Sensor, Spotify, Dooya, Shelly, Conbee2

alanblack

Wenn ich die Frage richtig verstanden habe, reicht es
$fld[3]=~"On,"?1:0
in das Feld "Function" zu packen. Ggf. musst Du die "3" anpassen auf die Spalte in der die Werte "on/off" stehen.

Grüße
FHEM 6.0 auf raspi3&ODROID XU4 mit HMLAN und HM-MOD-RPI-PCB, LaCrosse via JeeLink, COC868 und CUL433, Xiaomi Aqara+div. Zigbee via deCONZ, Dooya via SIGNALDuino, ZWave mit Danalock
Jeder Witz kann ein Einzeiler sein mit genügend Semikolons

MadMax-FHEM

Oder eventMap:

attr PIR eventMap on:1 off:0

Dann steht im Log 1 und 0 statt on bzw. off...
(vors. das regex passt dann noch/wieder)

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

tklein

@alanblack:
kannst du mir bitte kurz erklären, was der Ausdruck macht? Wird da in ein Arraywert entweder 0 oder 1 geschrieben?
Als ich den in der ersten Zeile hinzugefügt hatte, ist nach dem Speichern der identische Wert/Ausdruck in die Funktionzelle in Zeile 3 kopiert worden. Muss da so?

@Joachim: Muss ich dann auch meine DOIF's etc. anpassen auf 0/1 ?

Viele Grüße & Danke
Thomas
FHEM auf Pi 3, Echo (Plus, Dot und Connect), CUL868/433, HM Komponenten, Broadlink, Enigma (VU DUO2), Alexa/Homebridge, Sonoffs (POW, RF, Basic), Wemos D1 (IR, DHT, BH1750, OLED, BMP180), IT/Steckdosen, Fritzbox mit SIP, Wifilight, MQTT, Pilight, Xiaomi Flower Sensor, Spotify, Dooya, Shelly, Conbee2

MadMax-FHEM

#4
Hi Thomas,

Zitat von: tklein am 14 April 2017, 00:42:30
@Joachim: Muss ich dann auch meine DOIF's etc. anpassen auf 0/1 ?

Ich schätze JA.
Da die Events die vom Modul/Kanal kommen nun statt on/off eben 0/1 sind, zumindest bei mir so.

Habe einen Gewitterwarner mit Homematic-Sensoren gekoppelt, die open/closed senden und ich hab das dann auf 0/1 gemapped um es eben besser plotten zu können.
Im Eventmonitor kommt jetzt 0 bzw. 1 statt open/closed, daher müssen dann auch notify/DOIF etc. auf 0/1 matchen...

Andere Möglichkeiten:

readingsProxy https://wiki.fhem.de/wiki/ReadingsProxy (habe ich noch nicht verwendet), ist aber nicht so viel anders als dummy bzw. halt ebenfalls ein zusätzliches Device...

userReadings https://wiki.fhem.de/wiki/UserReadings bzw. https://fhem.de/commandref.html#readingFnAttributes dadurch bleiben die "originalen Events" erhalten und es sollte/müsste dann eben die zusätzlichen (zum jeweiligen angelegten userReadings) geben, die dann für's Plotten verwendet werden können...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

KernSani

Eventmap halte ich für den ungeschicktesten der vorgeschlagenen Wege. Userreading oder Readingsproxy erzeugen zusätzliche Logeinträge. Ein Mapping im gplot file dagegen erzeugt keinen zusätzlichen overhead und plottet auch alte Werte richtig...
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

MadMax-FHEM

#6
Zitat von: KernSani am 14 April 2017, 10:29:11
Ein Mapping im gplot file dagegen erzeugt keinen zusätzlichen overhead und plottet auch alte Werte richtig...

Wie würde das dann aussehen??

EDIT: plotReplace?

Danke, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

KernSani

Bei Verwendung von Dblog z.B so:
#fhemDbLog EG_PIR:state:::$val=~s/(on|off)(\d*).*/$1eq"on"?1:0/eg
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

alanblack

#8
Zitat von: tklein am 14 April 2017, 00:42:30
Zitat$fld[3]=~"On,"?1:0
@alanblack:
kannst du mir bitte kurz erklären, was der Ausdruck macht? Wird da in ein Arraywert entweder 0 oder 1 geschrieben?
Nee, da wird nichts in ein Array geschrieben. Kennst Du "IIF" aus irgendeiner Programmiersprache? Das hier ist das gleiche nur eine andere Syntax. Als IIF sähe das ungefähr so aus:
iif($fld[3]=="On", "1", "0")
$fld[] ist dabei ein Array, das SVG aus jeder Zeile des Logfiles erzeugt; quasi wie ein "split" mit dem Leerzeichen als Trenner.
Dabei sind dann in $fld[0] Datum und Uhrzeit, in $fld[1] das Gerät und ab $fld[2] die geloggten Infos.

Zitat
Als ich den in der ersten Zeile hinzugefügt hatte, ist nach dem Speichern der identische Wert/Ausdruck in die Funktionzelle in Zeile 3 kopiert worden. Muss da so?

Das habe ich nicht verstanden.


Grüße

Nachtrag: Eventmap und Userreadings habe ich auch mal ausprobiert. Kostet zu viel Grundlast auf dem System, ist unzuverlässig und macht den Code unleserlicher ("DOIF <Fenster> = 1 ...")
FHEM 6.0 auf raspi3&ODROID XU4 mit HMLAN und HM-MOD-RPI-PCB, LaCrosse via JeeLink, COC868 und CUL433, Xiaomi Aqara+div. Zigbee via deCONZ, Dooya via SIGNALDuino, ZWave mit Danalock
Jeder Witz kann ein Einzeiler sein mit genügend Semikolons

tklein

@ alanblack

Wenn ich den Functioneintrag speichern möchte (Zeile 1)
wird der identische Inhalt in die Zelle in der 3. Zeile kopiert.
FHEM auf Pi 3, Echo (Plus, Dot und Connect), CUL868/433, HM Komponenten, Broadlink, Enigma (VU DUO2), Alexa/Homebridge, Sonoffs (POW, RF, Basic), Wemos D1 (IR, DHT, BH1750, OLED, BMP180), IT/Steckdosen, Fritzbox mit SIP, Wifilight, MQTT, Pilight, Xiaomi Flower Sensor, Spotify, Dooya, Shelly, Conbee2

alanblack

Zitat von: tklein am 14 April 2017, 14:11:02
@ alanblack

Wenn ich den Functioneintrag speichern möchte (Zeile 1)
wird der identische Inhalt in die Zelle in der 3. Zeile kopiert.

Ja, das habe ich gerade nachvollziehen können. Keine Ahnung, ob das ein Bug oder ein Feature ist. Wäre ein komisches Feature, weil es nur in der ersten Zeile so passiert.
Ist aber egal, weil hier Deine 3. Zeile hier noch unbenutzt ist. Solange das Feld "Diagram label" - also das erste in jeder Zeile - leer ist, wird die Zeile ignoriert. Wenn Du einen dritten Wert plotten willst, muss Du halt das Feld leeren oder ändern.

Grüße
FHEM 6.0 auf raspi3&ODROID XU4 mit HMLAN und HM-MOD-RPI-PCB, LaCrosse via JeeLink, COC868 und CUL433, Xiaomi Aqara+div. Zigbee via deCONZ, Dooya via SIGNALDuino, ZWave mit Danalock
Jeder Witz kann ein Einzeiler sein mit genügend Semikolons

rudiratlos

Zitat von: MadMax-FHEM am 14 April 2017, 00:14:16
Oder eventMap:

attr PIR eventMap on:1 off:0

Dann steht im Log 1 und 0 statt on bzw. off...
(vors. das regex passt dann noch/wieder)

Gruß, Joachim