Neueste Beiträge

#1
Anfängerfragen / serteading mit Berechnung
Letzter Beitrag von dirk.k - 07 Mai 2024, 22:43:33
Hallo zusammen,
ich versuche per "at" einen Wert in ein reading zu schreiben, welcher die Differenz von 2 anderen readings ist:
([00:01] and  $mday==1 ) (
setreading MQTT2_new_tasmota_ORBIS my_PVS_generated_kwh_Month (ReadingsNum("MQTT2_new_tasmota_ORBIS","my_PVS_generated_kwh_total",0) - ReadingsNum("MQTT2_new_tasmota_ORBIS","tmp_PVS_generated_kwh_lastMonth",0)),
setreading MQTT2_new_tasmota_ORBIS tmp_PVS_generated_kwh_lastMonth [MQTT2_new_tasmota_ORBIS:my_PVS_generated_kwh_total],
)


heraus bekomme ich aber als Wert im Reading:
(ReadingsNum("MQTT2_new_tasmota_ORBIS","my_PVS_generated_kwh_total",0) - ReadingsNum("MQTT2_new_tasmota_ORBIS","tmp_PVS_generated_kwh_lastMonth",0))

oder bestenfalls bei einem anderen Versuch:
(174.14-166.54)

... aber nie das errechnete Ergebnis.

Wie müsste das aussehen, damit ein errechnetes Ergebnis als Wert im Reading landet?

Danke,
Dirk
#2
Anfängerfragen / Aw: Eventmap - KNX Dimmer mit ...
Letzter Beitrag von erwin - 07 Mai 2024, 22:19:28
Hi Alex,
versuch mal in der eventmap
'^TWup'    => '" . sprintf("TW %d",    minNum(10000,ReadingsNum($NAME,"TW",    0) + 100)) . "',
'^TWdown'  => '" . sprintf("TW %d",    maxNum(0,    ReadingsNum($NAME,"TW",    0) - 100)) . "'
.. TWup statt twup .... ;D

respekt, coole implementation!

l.g. erwin
#3
Solaranlagen / Aw: 76_SolarForecast - Informa...
Letzter Beitrag von DS_Starter - 07 Mai 2024, 22:18:58
Ich habe die Freiräume oberhalb der Balken beider Ebenen noch etwas optimiert.
Update im contrib.
#4
Anfängerfragen / Aw: reading aus mehreren readi...
Letzter Beitrag von betateilchen - 07 Mai 2024, 22:09:49
Zitat von: Beta-User am 07 Mai 2024, 21:51:33kann man m.E. erst in etwa abschätzen, wenn man weiß, wo bzw. wie die erwähnten Basisdaten in den Readings eigentlich herkommen.

Das ist mir inzwischen völlig wurscht. Oben habe ich eine Lösung gepostet, die auf den eingangs gelieferten Informationen beruht und das gewünschte Ergebnis liefert. Mission completed.

Jetzt hole ich mir Popcorn und setze mich als stiller Beobachter aufs Sofa.
#5
Anfängerfragen / Aw: reading aus mehreren readi...
Letzter Beitrag von Beta-User - 07 Mai 2024, 22:08:59
Bin nach Blick in den Code der Module völlig einig mit betateilchens Vorschlag mit dem userReadings-Vorschlag. Die Werte werden "komisch" angeliefert, was aber in der Übertragungs-Variante begründet ist....
#6
Anfängerfragen / Aw: reading aus mehreren readi...
Letzter Beitrag von ChrisA4 - 07 Mai 2024, 21:52:01
Sorry hatte gedacht ich hätte es einfach gemacht in meinem ersten beitrag tsja dann wol doch nicht

Also fang ich nochmals an

Habe folgenden dev erzeugt von einer CMI der Technischen Alternative

define COE_Node_cmi_2 COE_Node 2
attr COE_Node_cmi_2 alias Poolsteuerung
attr COE_Node_cmi_2 group Pool
attr COE_Node_cmi_2 readingsConfigAnalog 1=Kollektor_Temperatur_Pool_Solar 2=Pool_Wasser_Temperatur 3=Pool_Aussen_Temperatur
attr COE_Node_cmi_2 readingsConfigDigital 1=Pool_Pumpe_100 2=Pool_Pumpe_90 3=Pool_Pumpe_70 4=Pool_Pumpe_40 5=SchachtVentil_Gartenhaus 6=Schachtventil_Pool 7=Pos_Meldung_SchachtVentil_Gartenhaus 8=Pos_Meldung_Schachtventil_Pool 9=Wasserstand_Sensor 10=Ventile_Wasserzuleitung 11=Umschaltung_Wassermessung_1 12=Umschaltung_Wassermessung_2 13=Umschaltung_Solar_Ladung_1 14=Umschaltung_Solar_Ladung_2 15=T_Max_Begrenzung
attr COE_Node_cmi_2 room Pool
attr COE_Node_cmi_2 stateFormat {"Pool Temperatur: ".ReadingsVal($name,"Pool_Wasser_Temperatur",0)." °C<br> "}
#   CFGFN     
#   DEF        2
#   FUUID      663a6e9f-f33f-c95d-2fa7-7c8ff2808c2edf05
#   IODev      cmi
#   LASTInputDev cmi
#   MSGCNT     177
#   NAME       COE_Node_cmi_2
#   NR         711
#   STATE      Pool Temperatur: 22.4 °C<br>
#   TYPE       COE_Node
#   cmi_MSGCNT 177
#   cmi_TIME   2024-05-07 21:39:14
#   eventCount 130
#   READINGS:
#     2024-05-07 21:35:41   Kollektor_Temperatur_Pool_Solar 12.4
#     2024-05-07 20:57:40   PoolPumpe       Error evaluating COE_Node_cmi_2 userReading PoolPumpe: Can't modify non-lvalue subroutine call of &main::ReadingsVal in scalar assignment at (eval 94947200) line 1, near "1  "100""
#syntax error at (eval 94947200) line 1, near "1  "100""
#
#     2024-05-07 21:27:40   Pool_Aussen_Temperatur 13.8
#     2024-05-07 20:11:08   Pool_Pumpe_100  0
#     2024-05-07 20:11:08   Pool_Pumpe_40   1
#     2024-05-07 20:11:08   Pool_Pumpe_70   1
#     2024-05-07 20:11:08   Pool_Pumpe_90   0
#     2024-05-07 21:38:41   Pool_Wasser_Temperatur 22.4
#     2024-05-07 20:11:08   Pos_Meldung_SchachtVentil_Gartenhaus 0
#     2024-05-07 20:11:08   Pos_Meldung_Schachtventil_Pool 1
#     2024-05-07 20:11:08   SchachtVentil_Gartenhaus 0
#     2024-05-07 20:11:08   Schachtventil_Pool 0
#     2024-05-07 20:57:40   Schachtventilstellung Gartenhaus
#     2024-05-07 20:11:08   T_Max_Begrenzung 0
#     2024-05-07 20:11:08   Umschaltung_Solar_Ladung_1 0
#     2024-05-07 20:11:08   Umschaltung_Solar_Ladung_2 0
#     2024-05-07 20:11:08   Umschaltung_Wassermessung_1 0
#     2024-05-07 20:11:08   Umschaltung_Wassermessung_2 0
#     2024-05-07 20:11:08   Ventile_Wasserzuleitung 0
#     2024-05-07 20:11:08   Wasserstand_Sensor 1
#     2024-05-07 20:11:07   state           defined
#   helper:
#     CAN_NODE_ID 2
#   hmccu:
#
setstate COE_Node_cmi_2 Pool Temperatur: 22.4 °C<br>
setstate COE_Node_cmi_2 2024-05-07 21:35:41 Kollektor_Temperatur_Pool_Solar 12.4
setstate COE_Node_cmi_2 2024-05-07 20:57:40 PoolPumpe Error evaluating COE_Node_cmi_2 userReading PoolPumpe: Can't modify non-lvalue subroutine call of &main::ReadingsVal in scalar assignment at (eval 94947200) line 1, near "1  "100""\
syntax error at (eval 94947200) line 1, near "1  "100""\

setstate COE_Node_cmi_2 2024-05-07 21:27:40 Pool_Aussen_Temperatur 13.8
setstate COE_Node_cmi_2 2024-05-07 20:11:08 Pool_Pumpe_100 0
setstate COE_Node_cmi_2 2024-05-07 20:11:08 Pool_Pumpe_40 1
setstate COE_Node_cmi_2 2024-05-07 20:11:08 Pool_Pumpe_70 1
setstate COE_Node_cmi_2 2024-05-07 20:11:08 Pool_Pumpe_90 0
setstate COE_Node_cmi_2 2024-05-07 21:38:41 Pool_Wasser_Temperatur 22.4
setstate COE_Node_cmi_2 2024-05-07 20:11:08 Pos_Meldung_SchachtVentil_Gartenhaus 0
setstate COE_Node_cmi_2 2024-05-07 20:11:08 Pos_Meldung_Schachtventil_Pool 1
setstate COE_Node_cmi_2 2024-05-07 20:11:08 SchachtVentil_Gartenhaus 0
setstate COE_Node_cmi_2 2024-05-07 20:11:08 Schachtventil_Pool 0
setstate COE_Node_cmi_2 2024-05-07 20:57:40 Schachtventilstellung Gartenhaus
setstate COE_Node_cmi_2 2024-05-07 20:11:08 T_Max_Begrenzung 0
setstate COE_Node_cmi_2 2024-05-07 20:11:08 Umschaltung_Solar_Ladung_1 0
setstate COE_Node_cmi_2 2024-05-07 20:11:08 Umschaltung_Solar_Ladung_2 0
setstate COE_Node_cmi_2 2024-05-07 20:11:08 Umschaltung_Wassermessung_1 0
setstate COE_Node_cmi_2 2024-05-07 20:11:08 Umschaltung_Wassermessung_2 0
setstate COE_Node_cmi_2 2024-05-07 20:11:08 Ventile_Wasserzuleitung 0
setstate COE_Node_cmi_2 2024-05-07 20:11:08 Wasserstand_Sensor 1
setstate COE_Node_cmi_2 2024-05-07 20:11:07 state defined


ich würde mir gerne div werte anzeigen lassen wie zb
die Pooltemperatur die ich ja geschaft habe
zustand der wassermessung, Sola Ladung, Wasserzufuhr usw
Unteranderem auch den Zustand der Pumpe bzw mit welcher Leistung diese läuft
Aber nicht 4x Pumpe sondern nur einmal Pumpe mit der jeweiligen lauf Leistung

Ich weis es sind noch kleinere fehler ind den readings der CMI bin noch dabei diese zu beseitgen
aber mir ging es halt um die ansicht

Danke für eure bemühungen
#7
Anfängerfragen / Aw: reading aus mehreren readi...
Letzter Beitrag von Beta-User - 07 Mai 2024, 21:51:33
Zitat von: betateilchen am 07 Mai 2024, 21:18:35Es scheitert halt mal wieder an der möglichst einfachen Formulierung der eigentlichen Aufgabe.
Ja, aber nur "bedingt""Eigentlich" hat der TE schon "irgendwie verständlich durchblicken lassen", was er "sehen" möchte - nur halt praktisch alle technischen Details nicht erwähnt, die man bräuchte, um eine tatsächlich "einfache" Lösung anzubieten.

Zitat von: betateilchen am 07 Mai 2024, 21:04:32Natürlich, am einfachsten per userReading.
Ob das nämlich "am einfachsten" (ggf. einfach nur im Sinne von "übersichtlichsten") ist, kann man m.E. erst in etwa abschätzen, wenn man weiß, wo bzw. wie die erwähnten Basisdaten in den Readings eigentlich herkommen.

Vermutlich irgendwas, was einen JSON-Blob schickt (oder seine Infos blödsinnig via MQTT auf mehrere Topics verteilt)...
Und _vermutlich_ will der User auch einen Regelkreis schaffen, also "irgendwas" an sein Device senden... (Bin mal gespannt, was es eigentlich ist, ggf. bitte auch neben dem "list/copy for forum" als "immerwährende Basis-Bringschuld" auch den Link zur Homepage des Projekts liefern...?).
#8
Anfängerfragen / Eventmap - KNX Dimmer mit Tune...
Letzter Beitrag von AlexSchei - 07 Mai 2024, 21:29:44
Moin!

Ich sitze jetzt seit mehreren Stunden vor meinem Problem. Ich konnte es jetzt eingrenzen auf das Attribut "eventmap".

Folgende Situation: 
KNX Dimmer von MDT. 
6 Gruppenadressen:
1. EinAus Schalten dpt1
2. EinAus Status dpt1
3. Dimmen dpt5.001
4. Dimmen Status dpt5.001
5. Tuneable White dpt7.600
6. Tuneable White Status dpt7.600

Das Device ist angelegt:
defmod Dimmer KNX 0/0/3:dpt1:EinAus:set:nosuffix \
0/0/4:dpt1:Status:listenonly:nosuffix \
0/0/5:dpt5.001:Dimmen:set:nosuffix \
0/0/6:dpt5.001:DimmStatus:listenonly:nosuffix\
0/0/7:dpt7.600:TW:set:nosuffix\
0/0/8:dpt7.600:TWStatus:listenonly:nosuffix

attr Dimmer devStateIcon devStateIcon off:li_wht_off:on on:li_wht_on:off 0.*:li_wht_off:on \d+.*:li_wht_on:off

attr Dimmer eventMap {\
usr=>{\
'^dimup'   => '" . sprintf("Dimmen %d",minNum(100,  ReadingsNum($NAME,"Dimmen",0) + 10)) . "', \
'^dimdown' => '" . sprintf("Dimmen %d",maxNum(0,    ReadingsNum($NAME,"Dimmen",0) - 10)) . "',\
'^twup'    => '" . sprintf("TW %d",    minNum(10000,ReadingsNum($NAME,"TW",    0) + 100)) . "', \
'^twdown'  => '" . sprintf("TW %d",    maxNum(0,    ReadingsNum($NAME,"TW",    0) - 100)) . "'\
}, \
fw=>{\
'^dimup'=> 'dimup', '^dimdown'=> 'dimdown','^twup'=> 'TWup', '^twdown'=> 'TWdown'\
}\
}

attr Dimmer stateCmd { \
if ($gadName eq 'DimmStatus') \
{     \
fhem ("sleep 0.05 quiet;;setreading $name Dimmen $state;;");; \
}\
elsif ($gadName eq 'TWStatus') \
{   \
fhem ("sleep 0.05 quiet;;setreading $name TW $state;;");; \
}\
elsif ($gadName eq 'EinAus') \
{\
my $val = ($state eq 'on')?'100':'0';;\
fhem ("sleep 0.05 quiet;;setreading $name Dimmen $val;;");;\
}   \
return $state;;\
}

attr Dimmer webCmd :dimup:dimdown:TWup:TWdown:Dimmen

attr Dimmer widgetOverride Dimmen@set:slider,0,5,100 TW@set:slider,1000,100,10000



setstate Dimmer 2700 K
setstate Dimmer 2024-05-07 20:46:25 DimmStatus 100 %
setstate Dimmer 2024-05-07 20:46:25 Dimmen 100 %
setstate Dimmer 2024-05-07 20:08:39 EinAus on
setstate Dimmer 2024-05-07 20:23:51 IODev KNX.MDTRouter.IO
setstate Dimmer 2024-05-07 20:08:39 Status on
setstate Dimmer 2024-05-07 20:46:28 TW 2700 K
setstate Dimmer 2024-05-07 20:46:28 TWStatus 2700 K
setstate Dimmer 2024-05-07 20:46:28 last-sender 1.2.77
setstate Dimmer 2024-05-07 20:46:28 state 2700 K

Das ganze ist diesem Beispiel entnommen: https://wiki.fhem.de/wiki/KNX_Device_Definition_-_Beispiele#Dimmer
Und ich habe des ergänzt durch den Tuneable White Code. Die Steuerung der Farbtemperatur per Slider funktioniert wunderbar. 

ABER:

Die beiden Schaltflächen TWup und TWdown geben folgende Fehlermeldung raus: 
invalid cmd: "set Dimmer TWup EinAus off" - ignored


Was sich auch im LogFile wiederfindet: 
2024.05.07 21:22:36 2: Dimmer [KNX_Set_dpt1 1043]: invalid cmd: "set Dimmer TWup EinAus off" issued - ignored



Meine Vermutung ist, dass die Funktion ReadingsNum nicht auf den Wert im Reading TW zugreift. Daher dann einen falschen Wert liefert. Ist diese Annahme richtig? 
Kann mir hierfür jemand helfen?

Viele Grüße
Alex



#9
Anfängerfragen / Aw: reading aus mehreren readi...
Letzter Beitrag von betateilchen - 07 Mai 2024, 21:18:35
Es scheitert halt mal wieder an der möglichst einfachen Formulierung der eigentlichen Aufgabe.

Ich habe oben in meiner ersten Antwort eine der vielen möglichen Lösungen ergänzt.

#10
Anfängerfragen / Aw: reading aus mehreren readi...
Letzter Beitrag von Beta-User - 07 Mai 2024, 21:17:05
Zitat von: ChrisA4 am 07 Mai 2024, 21:12:10doch werden sie
Aha....
Eigentlich willst du doch nur
"Pumpe=0", oder "Pumpe=40", oder ....
Aber wenn man nicht weiß, was wie geliefert wird und was ggf. für die Weiterverarbeitung gebraucht wird, ist es Kaffeesatz, womit wir bei https://forum.fhem.de/index.php?topic=71806.0 wären...