[gelöst] DOIF Anfänger Frage

Begonnen von Edi77, 13 Oktober 2015, 18:06:53

Vorheriges Thema - Nächstes Thema

Edi77

Ich habe einen RPi2 als Slave an meinem Master FHEM gekoppelt der nur die Daten von den Wechselrichtern ausliest. Es gab Probleme beim empfang, deswegen habe ich das so gelöst.
Jetzt möchte ich auf dem Master bei > 1kw eine LED schalten auf einem Arduino der über Firmata gekoppelt ist. set led ..... funktioniert, lesen der Daten vom Slave RPi2 und gplot geht auch alles.

Definition fhem2fhem

define Solar1R cloneDummy Solar
attr Solar1R room SOLARSTROM
define FileLog_Solar1R FileLog ./log/Solar1R-%Y-%m.log Solar:.*string_1_udc|Solar:.*phase_1_uac|Solar:.*etod.*|Solar:.*string_1_pdc|Solar:.*total_pac|Solar:.*usage.*|Solar:.*grid_fr.*|Solar:.*device_st.*
attr FileLog_Solar1R icon icoLog
attr FileLog_Solar1R nrarchive 12
attr FileLog_Solar1R room SOLARSTROM

# LED Weiss
define LEDD3WE FRM_OUT 3
attr LEDD3WE IODev FIRMATA
attr LEDD3WE eventMap on:on off:off
attr LEDD3WE room FIRMATA
attr LEDD3WE stateFormat value
attr LEDD3WE webCmd on:off
define LEDD3WEdummy3 DOIF ([Solar1R.total_pac] > 0) (set LEDD3WE on) DOELSE (set LEDD3WE off)
attr LEDD3WEdummy3 verbose 5

Der Fehler
Readings
Device    Solar1R   2015-10-11 15:21:55
error   reading does not exist: [Solar1R:.*total_pac]   2015-10-11 15:21:55
state   initialized   2015-10-11 14:50:56

Logfile von Solar1R
2015-10-11_15:41:55 Solar device_status: Ok
2015-10-11_15:41:55 Solar string_1_pdc: 0.325
2015-10-11_15:41:55 Solar string_1_udc: 450.00
2015-10-11_15:41:55 Solar phase_1_uac: 239.00
2015-10-11_15:41:55 Solar total_pac: 0.283
2015-10-11_15:41:55 Solar grid_freq.: 50.00

Ich weiß irgendwo habe ich einen Denkfehler, habe schon einige durchprobiert, aber ich bin wohl blind .......... :-[
> 0 habe ich jetzt nur mal gemacht zum testen
Mir ist einfach nicht klar, muss ich jetzt die Variable vom slave device oder vom Dummydevice angeben und vor allen Dingen wie mache ich das den Wert von total_pac abzurufen.

Habe schon [Solar1R:*.total_pac] [Solar1R.total_pac] [Solar.total_pac] [Solar:total_pac] [Solar total_pac] usw. durch probiert
Ich habe auch gelesen bei DOIF ist ":" im Namen verboten.
Muss ich da evtl. beim FileLog von Solar1R umdefinieren?
Master FHEM 6 als VM auf ESX Ubuntu 20.04 LTS mit MAXCube/MAX!/FS20|TabletUI|Flightradar|Tasmota|TTN Lora|CCU3 HomematicIP|RPi mit GammaScout|MQTT EasyESP 8266|LuftdatenInfo|deCONZ HUEDev|probemon|Siemens Logo|P4D|3D PRINTER RAISE3D

Sunny

#1
Moin Edi77,

Werden den im "Event monitor"  vom Master Deine Definitionen der Events angezeigt?
Falls nicht beim "cloneDummy" dafür sorgen, daß dieser Events erstellt werden bzw. werden Sie im "Event monitor" beim Slave angezeigt?.
Stichworte:
"event-on-change-reading", "event-on-update-reading" und "event-min-interval"


Der Doppelpunkt ist schon so in DOIF, in der Commandref  beschrieben. ;)

Viele Grüße & vieleicht hilft es Dir ja weiter.
Sunny

PS: Code tags sind Augen freundlicher...
Teste doch maldefine LEDD3WEdummy3 DOIF ([Solar:total_pac] > "0") (set LEDD3WE on) DOELSE (set LEDD3WE off) ;)
FHEM 6.0 (RPi's 1b-4,CeleronM,Odroid C1+)
1-Wire (DS18B20,DS2406) |miniCUL|miniCUL868WLAN|HM|IT(-1500,LR-3500) |FB6591,FB7490,FB7580|DECT200|Powerline546E|520E|openwrt
Anfänger: Linux,FHEM+Perl

Edi77

Jetzt habe ich mal versucht diese DOIF auf dem Slave zu erstellen, und siehe da, jetzt kommt eine ganz andere Fehlermeldung.
configfile: Invalid characters in name (not A-Za-z0-9.:_): DOIF([Solar.total_pac]
Master FHEM 6 als VM auf ESX Ubuntu 20.04 LTS mit MAXCube/MAX!/FS20|TabletUI|Flightradar|Tasmota|TTN Lora|CCU3 HomematicIP|RPi mit GammaScout|MQTT EasyESP 8266|LuftdatenInfo|deCONZ HUEDev|probemon|Siemens Logo|P4D|3D PRINTER RAISE3D

Sunny

#3
Moin,

Zitat von: Edi77 am 14 Oktober 2015, 21:09:14
([Solar.total_pac]
NICHT PUNKT sondern DOPPELPUNKT ":"

Gruß
Sunny

PS: Commandref:

....
Bei der Angabe von zyklisch sendenden Sensoren (Temperatur, Feuchtigkeit, Helligkeit usw.) wie z. B.:

define di_heating DOIF ([sens:temperature] < 20) (set heating on)
....

sense <=> Device <=> Solar
temperature  <=> reading  <=> total_pac
;)
[Solar.total_pac] <=> [Device:state] <=> [Device]
FHEM 6.0 (RPi's 1b-4,CeleronM,Odroid C1+)
1-Wire (DS18B20,DS2406) |miniCUL|miniCUL868WLAN|HM|IT(-1500,LR-3500) |FB6591,FB7490,FB7580|DECT200|Powerline546E|520E|openwrt
Anfänger: Linux,FHEM+Perl

Edi77

DANKE @Sunny

Wenn ich aber das so mache
define DOIF([Solar:total_pac] > 0.01) (set SolarPowerdummy1 on) DOELSE (set SolarPowerdummy1 off)
Kommt dieser Fehler:
Error messages while initializing FHEM:
configfile: Invalid characters in name (not A-Za-z0-9.:_): DOIF([Solar:total_pac]

Wenn ich
define test notify SolarPowerdummy1 IF ([Solar:total_pac] > 0.01) (set SolarPowerdummy1 on) ELSE (set SolarPowerdummy1 off)

wird SolarPowerdummy1 nicht gesetzt.
Wo liegt hier mein Fehler?
Master FHEM 6 als VM auf ESX Ubuntu 20.04 LTS mit MAXCube/MAX!/FS20|TabletUI|Flightradar|Tasmota|TTN Lora|CCU3 HomematicIP|RPi mit GammaScout|MQTT EasyESP 8266|LuftdatenInfo|deCONZ HUEDev|probemon|Siemens Logo|P4D|3D PRINTER RAISE3D

Damian

Zitat von: Edi77 am 15 Oktober 2015, 10:42:37
DANKE @Sunny

Wenn ich aber das so mache
define DOIF([Solar:total_pac] > 0.01) (set SolarPowerdummy1 on) DOELSE (set SolarPowerdummy1 off)
Kommt dieser Fehler:
Error messages while initializing FHEM:
configfile: Invalid characters in name (not A-Za-z0-9.:_): DOIF([Solar:total_pac]

Wenn ich
define test notify SolarPowerdummy1 IF ([Solar:total_pac] > 0.01) (set SolarPowerdummy1 on) ELSE (set SolarPowerdummy1 off)

wird SolarPowerdummy1 nicht gesetzt.
Wo liegt hier mein Fehler?

Du musst schon hinter DOIF ein Leerzeichen setzen, sonst wird der Modulname von FHEM nicht erkannt.

Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Edi77

#6
oooops ok verstehe.

define DOIF ([Solar:total_pac] > 0.01) (set SolarPowerdummy1 on) DOELSE (set SolarPowerdummy1 off)

Dann kommt aber als Fehler:
Error messages while initializing FHEM:
configfile: Unknown module ([Solar:total_pac]

Kann es vielleicht ein Problem sein das der total_pac Wert in 0.100 angegeben wird statt in 0,100 also "." statt "," ?
Master FHEM 6 als VM auf ESX Ubuntu 20.04 LTS mit MAXCube/MAX!/FS20|TabletUI|Flightradar|Tasmota|TTN Lora|CCU3 HomematicIP|RPi mit GammaScout|MQTT EasyESP 8266|LuftdatenInfo|deCONZ HUEDev|probemon|Siemens Logo|P4D|3D PRINTER RAISE3D

Icinger

define DOIF ([Solar:total_pac] > 0.01) (set SolarPowerdummy1 on) DOELSE (set SolarPowerdummy1 off)

Jetzt fehlt dir noch den Name vor dem DOIF, also:

define irgendwas DOIF ([Solar:total_pac] > 0.01) (set SolarPowerdummy1 on) DOELSE (set SolarPowerdummy1 off)

lg, Ici
Verwende deine Zeit nicht mit Erklärungen. Die Menschen hören (lesen) nur, was sie hören (lesen) wollen. (c) Paulo Coelho

Edi77

DANKE

So funktioniert es jetzt auf den Slave FHEM
define SolarPowerdummy1 dummy
define SolarPowerdummy2 DOIF ([Solar:total_pac] > 0.01) (set SolarPowerdummy1 on) DOELSE (set SolarPowerdummy1 off)

Aber wie bekomme ich jetzt die SolarPowerdummy1 auf meinen Master FHEM
Mit FHEM2FHEM habe ich auf dem Master:

define RPi219FHEM FHEM2FHEM 192.168.1.xxx:7072 LOG:xxxxxxxx
define SolarPowerdummy1_local cloneDummy SolarPowerdummy1
attr SolarPowerdummy1_local room SOLARSTROM

define LEDD3WEdummy3 DOIF ([SolarPowerdummy1_local] eq "on") (set LEDD3WE on) DOELSE (set LEDD3WE off)

Aber bei SolarPowerdummy1_local kommt immer
STATE     defined

Muss ich da nicht irgendwie noch sagen das ein read vom slave fhem zum master fhem erfolgen soll?

Master FHEM 6 als VM auf ESX Ubuntu 20.04 LTS mit MAXCube/MAX!/FS20|TabletUI|Flightradar|Tasmota|TTN Lora|CCU3 HomematicIP|RPi mit GammaScout|MQTT EasyESP 8266|LuftdatenInfo|deCONZ HUEDev|probemon|Siemens Logo|P4D|3D PRINTER RAISE3D

Sunny

Moin,
Zitat von: Edi77 am 15 Oktober 2015, 15:21:41
Aber wie bekomme ich jetzt die SolarPowerdummy1 auf meinen Master FHEM
Mit FHEM2FHEM habe ich auf dem Master:

define RPi219FHEM FHEM2FHEM ... LOG:xxxxxxxx < HIER MUSS DAS STEHEN, WAS DU  MÖCHTEST DAS DER MASTER VOM SLAVE AN EVENTS "MITBEKOMMT

Muss ich da nicht irgendwie noch sagen das ein read vom slave fhem zum master fhem erfolgen soll?

Dies steht zB auch in der Commandref ...

Viele Grüße
Sunny
FHEM 6.0 (RPi's 1b-4,CeleronM,Odroid C1+)
1-Wire (DS18B20,DS2406) |miniCUL|miniCUL868WLAN|HM|IT(-1500,LR-3500) |FB6591,FB7490,FB7580|DECT200|Powerline546E|520E|openwrt
Anfänger: Linux,FHEM+Perl

Edi77

Sorry

Die Zeile sieht dann so aus

define RPi219FHEM FHEM2FHEM 192.168.1.xxx:7072 LOG:.*

Oder muss ich bei dem Slave für das SolarPowerdummy1 noch ein Filelog definieren das es funktioniert ?
Master FHEM 6 als VM auf ESX Ubuntu 20.04 LTS mit MAXCube/MAX!/FS20|TabletUI|Flightradar|Tasmota|TTN Lora|CCU3 HomematicIP|RPi mit GammaScout|MQTT EasyESP 8266|LuftdatenInfo|deCONZ HUEDev|probemon|Siemens Logo|P4D|3D PRINTER RAISE3D

Sunny

Moin Edi77,

meine Glaskugel ist gerade nicht funktionsbereit...  ;D

1.:
Zitat von: Sunny am 13 Oktober 2015, 21:25:12
Werden den im "Event monitor"  vom Master Deine Definitionen der Events angezeigt?

2: Hast Du folgendes schon auf dem "Master" getestet?
Zitat von: Sunny am 13 Oktober 2015, 21:25:12
Teste doch maldefine LEDD3WEdummy3 DOIF ([Solar:total_pac] > "0") (set LEDD3WE on) DOELSE (set LEDD3WE off) ;)

Ich verstehe nicht so ganz, was Du mit:
Zitat von: Edi77 am 16 Oktober 2015, 08:58:56

define RPi219FHEM FHEM2FHEM 192.168.1.xxx:7072 LOG:.*

Oder muss ich bei dem Slave für das SolarPowerdummy1 noch ein Filelog definieren das es funktioniert ?
wissen möchtest, bzw. wiso das "helfen" sollte.

Ich warte erst mal auf Antworten der schon gestellten Fragen.

Und Sorry, aber ich glaube Du solltest noch ein "bisschen" in den Dokumentationen zu FHEM lesen.

Woher stammt den:
Zitat von: Edi77 am 13 Oktober 2015, 18:06:53
Logfile von Solar1R
2015-10-11_15:41:55 Solar device_status: Ok
2015-10-11_15:41:55 Solar string_1_pdc: 0.325
2015-10-11_15:41:55 Solar string_1_udc: 450.00
2015-10-11_15:41:55 Solar phase_1_uac: 239.00
2015-10-11_15:41:55 Solar total_pac: 0.283
2015-10-11_15:41:55 Solar grid_freq.: 50.00

?

Gruss
Sunny

FHEM 6.0 (RPi's 1b-4,CeleronM,Odroid C1+)
1-Wire (DS18B20,DS2406) |miniCUL|miniCUL868WLAN|HM|IT(-1500,LR-3500) |FB6591,FB7490,FB7580|DECT200|Powerline546E|520E|openwrt
Anfänger: Linux,FHEM+Perl

Edi77

Hallo

Es scheint jetzt zu funktionieren, war wohl nur ein reboot vom Slave und Master fällig, werde morgen noch mal schauen wenn die Wechselrichter arbeiten.

Ist ein Auszug auf dem Filelog vom SMAUtils
2015-10-11_15:41:55 Solar device_status: Ok
2015-10-11_15:41:55 Solar string_1_pdc: 0.325
2015-10-11_15:41:55 Solar string_1_udc: 450.00
2015-10-11_15:41:55 Solar phase_1_uac: 239.00
2015-10-11_15:41:55 Solar total_pac: 0.283
2015-10-11_15:41:55 Solar grid_freq.: 50.00

define LEDD3WEdummy3 DOIF ([Solar:total_pac] > "0") (set LEDD3WE on) DOELSE (set LEDD3WE off)
Hatte ich genau so auf dem Master getestet, ging nicht.

Im Event Monitor tut sich leider überhaupt nichts :(
Master FHEM 6 als VM auf ESX Ubuntu 20.04 LTS mit MAXCube/MAX!/FS20|TabletUI|Flightradar|Tasmota|TTN Lora|CCU3 HomematicIP|RPi mit GammaScout|MQTT EasyESP 8266|LuftdatenInfo|deCONZ HUEDev|probemon|Siemens Logo|P4D|3D PRINTER RAISE3D

Sunny

Moin,

Zitat von: Edi77 am 17 Oktober 2015, 00:05:17
Es scheint jetzt zu funktionieren,
Dann drücke ich Dir die Daumen.


define LEDD3WEdummy3 DOIF ([Solar:total_pac] > "0") (set LEDD3WE on) DOELSE (set LEDD3WE off)
Sorry mein Fehler "0" ist hier falsch, sollte nur 0 sein.
http://forum.fhem.de/index.php/topic,42361.msg345442.html#msg345442

Zitat von: Edi77 am 17 Oktober 2015, 00:05:17
Im Event Monitor tut sich leider überhaupt nichts :(
Auf Deinem Master gibt es gar keine Events ?  ???
(Das ist dann aber kein Problem mehr von DOIF oder FHEM2FHEM)

Viele Grüße
Sunny

PS: Code tags findest Du mit dem Symbol # über den Smileys ;)
FHEM 6.0 (RPi's 1b-4,CeleronM,Odroid C1+)
1-Wire (DS18B20,DS2406) |miniCUL|miniCUL868WLAN|HM|IT(-1500,LR-3500) |FB6591,FB7490,FB7580|DECT200|Powerline546E|520E|openwrt
Anfänger: Linux,FHEM+Perl

Edi77

Heute ist leider nicht gerade der beste Tag für Tests mit den Wechselrichtern alles grau in grau bis jetzt funktioniert es mal so wie es soll :)

DANKE euch allen ;)
Master FHEM 6 als VM auf ESX Ubuntu 20.04 LTS mit MAXCube/MAX!/FS20|TabletUI|Flightradar|Tasmota|TTN Lora|CCU3 HomematicIP|RPi mit GammaScout|MQTT EasyESP 8266|LuftdatenInfo|deCONZ HUEDev|probemon|Siemens Logo|P4D|3D PRINTER RAISE3D