fhempy: tuya (lokal)

Begonnen von dominik, 26 April 2022, 19:12:25

Vorheriges Thema - Nächstes Thema

dominik

Spannend dass die Cloud falsche Werte liefert. Das hatte ich noch nie. Smartlife zeigt es richtig an?
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

thburkhart

Zitat von: dominik am 26 Februar 2023, 14:40:32
Spannend dass die Cloud falsche Werte liefert. Das hatte ich noch nie. Smartlife zeigt es richtig an?

ja spannend ; in der app stehen 5.6 Watt

1 RASPI4B, 1 RASPI3B, 2 CUL, 2 Jeelink, 60 Tuya-Devices (Schalter, Dimmer, Sensoren, Cameras), 30 HUE-Lampen, 5 MAX! WTs, 16 MAX! HTs, 12 MAX! FKs, 1 Bresser 5in1, 1 OilFox, 8 ALEXA Echos und Dots, FHEM, 5 Tasmota-Devices, SonOff -Bridge, PowerFox, Buderus KM200

stefanru

#632
Hi Dominik,

ja steps sieht gut aus.
Das sollte eigentlich gut passen und ich bräuchte kein addLog mehr.
Ich mach ja auch Berechnungen wie z.B. delta-d, aber auch der sollte dann den richtigen letzten Wert bekommen.

Danke für den Tip schau ich mal ob ich addLog loswerden kann.
Mir fällt da nur ein dass ich wenn keine Werte ab 0 Uhr kommen und die Heizung erst um 9 Uhr angeht von 0 bis 9 gar nichts im Plot hatte, wenn ich mich richtig erinnere.

Gruß,
Stefan

Superposchi

#633
Also das mit dem Translation klappt noch nicht richtig. Habe jetzt den code für ein énum folgendermaßen geändert:
{'code': 'timer', 'dp_id': 13, 'type': 'Enum', 'values': '{"range":["0","1","2","3"], "translation": { "0": "Off","1": "1 Stunde","2": "3 Stunden","3": "6 Stunden"}}', 'desc': 'Timer'} bzw.
{'code': 'timer', 'dp_id': 13, 'type': 'Enum', 'values': '{"range":["0","1","2","3"], "translation": { "0": "Off","1": "1 Stunde","2": "3 Stunden","3": "6 Stunden"}}'}

In der Auswahl des Setbefehls kann ich unter Timer jetzt zwischen Off und 1 auswählen und zusätzlich gibt es als Alternativauswahl zu Timer nun noch "Stunde,3", "Stunde" und "Stunde,6".
Sieht für mich erstmal danach aus, dass dieAnführungszeichen irgendwo falsch gesetzt sind.

Könntest du das noch mal gegenchecken?

Der Validator meldet in jeden Codeteil immer einen Fehler in Zeile 1:
{
'code': 'timer',
'dp_id': 13,
'type': 'Enum',
'values': '{"range":["0","1","2","3"], "translation": { "0": "Off","1": "1 Stunde","2": "3 Stunden","3": "6 Stunden"}}',
'desc': 'Timer'
}

Error: Parse error on line 1:
{ 'code': 'timer', 'd
--^
Expecting 'STRING', '}', got 'undefined'

Die Code-Snippets funktionieren aber bis auf den genannten Punkt.

P.S. Bei einem weiteren Punkt funktioniert es richtig. Einziger Unterschied ist das die Alias keine eerzeichen enthalten. Kann das ein Problem sein?

dominik

Genau, Leerzeichen dürfen keine drin sein, weil fhem keine Befehle mit Leerzeichen kennt.

@stefanru, für den Tagesübergang kannst du dir logproxy anschauen, damit geht das.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

Superposchi

Hallo Dominik,
hab es jetzt per Unterstrich gelöst. Sieht zwar nicht so schön aus, aber wenn's nicht anders geht muss das reichen.

Als letzte Eigenschaft bleibt mir noch die Farbe der LED. Mit welcher Funktion kann man eine Farbauswahl generieren, falls überhaupt möglich?
Und in den Readings wird der Farbwert mit "3600ff00fcffff" angegeben. Also nicht typisches Hex-Format. Sagt dir das was?

thburkhart

#636
Zitat von: dominik am 26 Februar 2023, 11:35:33
Richtig, darum ging es ja, um die Darstellung um Graphen.

mir geht es immer noch darum events für energy zu erzeugen

meinen JL35 musste ich eher diesbezüglich bändigen

[code]

define TUYA_JL35 fhempy tuya wifvoilfrqeo6hvu 8877821724a16014ef14 192.168.9.93
attr TUYA_JL35 DbLogExclude .*
attr TUYA_JL35 DbLogInclude energy
attr TUYA_JL35 alias JL35 GL AXT1800
attr TUYA_JL35 dp_01 switch_1
attr TUYA_JL35 dp_02 countdown_1
attr TUYA_JL35 dp_03 add_ele
attr TUYA_JL35 dp_04 cur_current
attr TUYA_JL35 dp_05 cur_power
attr TUYA_JL35 dp_06 cur_voltage
attr TUYA_JL35 event-min-interval energy:3600
attr TUYA_JL35 group Schalter (T)
attr TUYA_JL35 room -TUYA
attr TUYA_JL35 stateFormat Verbrauch: [$name:energy] kWh, cPower [$name:cur_power] W, cVoltage [$name:cur_voltage] V, Time: [$name:cur_power:t]

setstate TUYA_JL35 Verbrauch: 1.035 kWh, cPower 5.7 W, cVoltage 225.1 V, Time: 2023-02-26 18:38:15
setstate TUYA_JL35 2023-02-25 17:14:51 countdown_1 0.0
setstate TUYA_JL35 2023-02-26 18:38:15 cur_current 25.0
setstate TUYA_JL35 2023-02-26 18:38:15 cur_power 5.7
setstate TUYA_JL35 2023-02-26 18:38:00 cur_voltage 225.1
setstate TUYA_JL35 2023-02-25 17:14:51 dp_07 0
setstate TUYA_JL35 2023-02-26 18:30:54 energy 1.035
setstate TUYA_JL35 2023-02-26 17:43:05 online 1
setstate TUYA_JL35 2023-02-26 17:43:36 state on
setstate TUYA_JL35 2023-02-25 17:14:51 switch_1 on

[/code]

aber bei allen SPs klappt das nicht mit

attr TUYA_JL35 DbLogExclude .*
attr TUYA_JL35 DbLogInclude energy
attr TUYA_JL35 event-min-interval energy:3600


wie könnte ich den event für energy forcieren?

@stefanru
ich hab`s woill etwas mehr kapiert... ein schlichtes
+*01:00:00 set DbLog_THB addlog TYPE=fhempy:energy
schreibt nun wunderbar alle enery-Werte alle Stunde :-)

danke für den wertvollen Tip!



1 RASPI4B, 1 RASPI3B, 2 CUL, 2 Jeelink, 60 Tuya-Devices (Schalter, Dimmer, Sensoren, Cameras), 30 HUE-Lampen, 5 MAX! WTs, 16 MAX! HTs, 12 MAX! FKs, 1 Bresser 5in1, 1 OilFox, 8 ALEXA Echos und Dots, FHEM, 5 Tasmota-Devices, SonOff -Bridge, PowerFox, Buderus KM200

dominik

Zitat von: Superposchi am 26 Februar 2023, 17:50:42
Hallo Dominik,
hab es jetzt per Unterstrich gelöst. Sieht zwar nicht so schön aus, aber wenn's nicht anders geht muss das reichen.

Als letzte Eigenschaft bleibt mir noch die Farbe der LED. Mit welcher Funktion kann man eine Farbauswahl generieren, falls überhaupt möglich?
Und in den Readings wird der Farbwert mit "3600ff00fcffff" angegeben. Also nicht typisches Hex-Format. Sagt dir das was?

Ich denke das ist colour_data. Probier mal:
functions: {'code': 'colour_data', 'dp_id': 24, 'type': 'Json', 'values': {'h': {'min': 0, 'scale': 0, 'unit': '', 'max': 360, 'step': 1}, 's': {'min': 0, 'scale': 0, 'unit': '', 'max': 1000, 'step': 1}, 'v': {'min': 0, 'scale': 0, 'unit': '', 'max': 1000, 'step': 1}}, 'desc': 'colour data'}
status: {'code': 'colour_data', 'dp_id': 24, 'type': 'Json', 'values': {'h': {'min': 0, 'scale': 0, 'unit': '', 'max': 360, 'step': 1}, 's': {'min': 0, 'scale': 0, 'unit': '', 'max': 1000, 'step': 1}, 'v': {'min': 0, 'scale': 0, 'unit': '', 'max': 1000, 'step': 1}}}

Btw, wenn dann alles funktioniert, poste bitte die beiden tuya_spec_... Attribute. Ich würde es dann in die mappings.py aufnehmen.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

dominik

Zitat von: thburkhart am 26 Februar 2023, 18:48:47
mir geht es immer noch darum events für energy zu erzeugen

meinen JL35 musste ich eher diesbezüglich bändigen

[code]

define TUYA_JL35 fhempy tuya wifvoilfrqeo6hvu 8877821724a16014ef14 192.168.9.93
attr TUYA_JL35 DbLogExclude .*
attr TUYA_JL35 DbLogInclude energy
attr TUYA_JL35 alias JL35 GL AXT1800
attr TUYA_JL35 dp_01 switch_1
attr TUYA_JL35 dp_02 countdown_1
attr TUYA_JL35 dp_03 add_ele
attr TUYA_JL35 dp_04 cur_current
attr TUYA_JL35 dp_05 cur_power
attr TUYA_JL35 dp_06 cur_voltage
attr TUYA_JL35 event-min-interval energy:3600
attr TUYA_JL35 group Schalter (T)
attr TUYA_JL35 room -TUYA
attr TUYA_JL35 stateFormat Verbrauch: [$name:energy] kWh, cPower [$name:cur_power] W, cVoltage [$name:cur_voltage] V, Time: [$name:cur_power:t]

setstate TUYA_JL35 Verbrauch: 1.035 kWh, cPower 5.7 W, cVoltage 225.1 V, Time: 2023-02-26 18:38:15
setstate TUYA_JL35 2023-02-25 17:14:51 countdown_1 0.0
setstate TUYA_JL35 2023-02-26 18:38:15 cur_current 25.0
setstate TUYA_JL35 2023-02-26 18:38:15 cur_power 5.7
setstate TUYA_JL35 2023-02-26 18:38:00 cur_voltage 225.1
setstate TUYA_JL35 2023-02-25 17:14:51 dp_07 0
setstate TUYA_JL35 2023-02-26 18:30:54 energy 1.035
setstate TUYA_JL35 2023-02-26 17:43:05 online 1
setstate TUYA_JL35 2023-02-26 17:43:36 state on
setstate TUYA_JL35 2023-02-25 17:14:51 switch_1 on

[/code]

aber bei allen SPs klappt das nicht mit

attr TUYA_JL35 DbLogExclude .*
attr TUYA_JL35 DbLogInclude energy
attr TUYA_JL35 event-min-interval energy:3600


wie könnte ich den event für energy forcieren?

@stefanru
ich hab`s woill etwas mehr kapiert... ein schlichtes
+*01:00:00 set DbLog_THB addlog TYPE=fhempy:energy
schreibt nun wunderbar alle enery-Werte alle Stunde :-)

danke für den wertvollen Tip!

Ist das jetzt erledigt oder noch was offen?

tuya_cloud sollte nun den richtigen Faktor liefern, bitte update machen.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

Superposchi

Bei den Set-Befehlen wird es angezeigt, Eingaben werden aber nicht angenommen.
Bei den Readins wurde kein Reading "color_data" erzeugt.

Hier das Attribut, color_data ist der letzte Teil:
[{'code': 'switch', 'dp_id': 1, 'type': 'Boolean', 'values': {}}, {'code': 'switch_led', 'dp_id': 11, 'type': 'Boolean', 'values': {}}, {'code': 'mode', 'dp_id': 103, 'type': 'Enum', 'values': '{"range":["small","big","off"]}'}, {'code': 'timer', 'dp_id': 13, 'type': 'Enum', 'values': '{"range":["0","1","2","3"], "translation": { "0": "Off","1": "1_Stunde","2": "3_Stunden","3": "6_Stunden"}}'}, {'code': 'colortype', 'dp_id': 110, 'type': 'Enum', 'values': '{"range":["1","2","3"], "translation": { "1": "Gradiant","2": "Fix","3": "Nachtlicht"}}'}, {'code': 'brightness', 'dp_id': 111, 'type': 'Integer', 'values': '{"min":1,"max":255,"scale":0,"step":1}'}, {'code': 'colour_data', 'dp_id': 24, 'type': 'Json', 'values': {'h': {'min': 0, 'scale': 0, 'unit': '', 'max': 360, 'step': 1}, 's': {'min': 0, 'scale': 0, 'unit': '', 'max': 1000, 'step': 1}, 'v': {'min': 0, 'scale': 0, 'unit': '', 'max': 1000, 'step': 1}}}]
Vielleicht findest du ja einen fehler, er hat nach dem Restart des fhempy-servers jedenfalls nicht gemuckt.

dominik

dp 24 ist eh richtig? Ich hatte das nur von einen meiner Devices rauskopiert.
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

Superposchi

#641
Nein, es war DP_108 - ist mir auch nach dem schreiben aufgefallen.
mit dp_108 wird ein Reading erzeut und aus dem Set-Befehl auch eine Farbe übernommen. Allerdings nicht die Farbe die ausgewählt wurde.
Beispiel: ff0000 zeigt in der App schwarz an, bei 0000ff kommt ein Grünton (nicht das originale Grün, sondern ein Mischton).

Also sag mal die Hälfte hat ggklappt, grins.

PS: Habe mal drau geachtet, wenn der Wert über die Fhem-Oberfläche geändert wird, ändert sich zwar das Reading colour_data, nicht jedoch das Reading dp_108 in dem die 14-stellige Angabe steht.

dominik

dp_108 kannst danach löschen. Es werden immer nur die benannten Readings verwenden, da im Normalfall die dp_xxx gar nicht existieren wenn tuya die richtigen Specs liefert.

Dann ist es vielleicht colour_data_v2
function: {'code': 'colour_data_v2', 'dp_id': 108, 'type': 'Json', 'values': {'h': {'min': 0, 'scale': 0, 'unit': '', 'max': 360, 'step': 1}, 's': {'min': 0, 'scale': 0, 'unit': '', 'max': 1000, 'step': 1}, 'v': {'min': 0, 'scale': 0, 'unit': '', 'max': 1000, 'step': 1}}, 'desc': 'colour data v2'}
status: {'code': 'colour_data_v2', 'dp_id': 108, 'type': 'Json', 'values': {'h': {'min': 0, 'scale': 0, 'unit': '', 'max': 360, 'step': 1}, 's': {'min': 0, 'scale': 0, 'unit': '', 'max': 1000, 'step': 1}, 'v': {'min': 0, 'scale': 0, 'unit': '', 'max': 1000, 'step': 1}}
fhempy -  https://github.com/fhempy/fhempy: GoogleCast, Tuya, UPnP, Ring, EQ3BT, Nespresso, Xiaomi, Spotify, Object Detection, ...
Kaffeespende: https://paypal.me/todominik

thburkhart

Zitat von: dominik am 26 Februar 2023, 21:20:33
Ist das jetzt erledigt oder noch was offen?

tuya_cloud sollte nun den richtigen Faktor liefern, bitte update machen.

ich suche noch 5 Devices, dich in _local noch keine Daten liefern

ich berichte dann

-cloud ist momentan auskommentiert
-cloud würde ich als workaround nehmen, falls ich es _local nicht schaffe
1 RASPI4B, 1 RASPI3B, 2 CUL, 2 Jeelink, 60 Tuya-Devices (Schalter, Dimmer, Sensoren, Cameras), 30 HUE-Lampen, 5 MAX! WTs, 16 MAX! HTs, 12 MAX! FKs, 1 Bresser 5in1, 1 OilFox, 8 ALEXA Echos und Dots, FHEM, 5 Tasmota-Devices, SonOff -Bridge, PowerFox, Buderus KM200

Superposchi

Hab es geändert und doppelt probiert, leider kommt dasDevice nach dem Neustart nicht über Initializing... hinaus.
Gibt es noch eine Alternative, sonst probiere ich es noch mal mit der ersten und teste was rum.