[GELÖST] Readings aus "Weather" in S7_AWrite übergeben

Begonnen von Black_Death_HH, 05 Dezember 2016, 22:55:08

Vorheriges Thema - Nächstes Thema

Black_Death_HH

Moin,

bin neu hier im Forum und auch absoluter FHEM-Neuling. Habe mir die Anfänger-Lektüre und diverse Hilfen reingezogen, ich komme aber irgendwie nicht zu einem brauchbaren Ergebnis. Zu meinem Problem:
Ich möchte diverse Gerätedaten in meine S7-300 CPU übertragen. Den Anfang wollte ich mit dem Weathermodul versuchen. Ich möchte also die "readings", nehmen wir mal als Beispiel die Temperatur, in ein S7_AWrite schreiben. Ich habe mir hierzu die Hilfe des S7-Moduls herangezogen und relativ weit unten das Bsp. kopiert, um es auszuprobieren. Leider ohne Erfolg. Ich stehe irgendwie etwas auf dem Schlauch.

attr Temp_Wetter_App stateFormat {sprintf("%.1f",ReadingsVal($name,"state",0))." °C"}

Das wäre der Code für das Attribut des S7_AWrite (angepasst auf mein Projekt) und der folgende für das notify

define Temp_Wetter_App_notify notify Wetter_Trelde {\
fhem "set Temp_Wetter_App ".ReadingsVal("Wetter_Trelde","temp_c","10");;\}


Leider will es nicht funktionieren und mir fehlen noch die Kenntnisse der Programmierweise. Vielleicht kann mir ja jemand helfen. Vielen Dank im Vorraus.

Gruß, Thomas

Black_Death_HH

#1
Moin,

hier nun die Lösung meines Reading in S7_AWrite kopieren Problems. Die meisten Anleitungen reagieren ja immer nur auf ein reading, daher waren sie für mich nicht so wirklich brauchbar und ich die Lösung im Wiki war ein Auszug aus der fhem.cfg, wenn ich das richtig verstanden haben. Und da soll man ja nicht rumfummeln, wenn man so wie ich, keine Ahnung hat 

Also habe ich dann folgendes in das Eingabefeld geschrieben:

1.) Das entsprechende S7_AWrite anlegen

Code: [Auswählen]
define S7_temp_c S7_AWrite db 301 4 s8

2.) Dann das notify das auf das reading reagiert (hier die Temperatur temp_c aus dem weather Modul)

Code: [Auswählen]
define S7_temp_c_notify notify Wetter {}

3.) Das angelegte notify öffnen und auf "DEF" klicken. Dort dann den Inhalt der geschweiften Klammer beschreiben, hier dann also das Auslesen des Readings temp_c aus dem weather Modul mit dem Namen "Wetter"

Code: [Auswählen]
fhem "set S7_Temp_c ".ReadingsVal("Wetter","temp_c","99")

Nun noch die Attribute wie gewünscht anlegen und gut. Für die Cracks unter euch sicher ganz einfach, ich hab etwas länger gebraucht 


Gruß, Thomas