Ausgangsstatus einer 8Port Karte untereinander Darstellen

Begonnen von ritchie, 29 August 2013, 23:36:01

Vorheriges Thema - Nächstes Thema

ritchie

Hallo Zusammen,

ich verzweifle derzeit an der Darstellung meiner 8 Port Ausgangskarte.

Ich würde gerne die komplette Bezeichnung, im folgenden Format darstellen,


Lüfter 1:           Eingeschaltet
Lüfter 2:           Ausgeschaltet
Lüfter 3:           Eingeschaltet
Lüfter 4:           Ausgeschaltet


Statt wie derzeit alles in einer Zeile, was die Texte stark begrenzt.
Da sieht das dann eher so aus:

   L1: ON L2:OFF L3:ON L4:OFF


Kann man das irgendwie hinbiegen ?

Ein Hinweis zum Ansatz wäre auch schon eine Hilfe.

Gruss R.





IPU662  Ipfire & Fhem (Homematic + MAX) - Produktiv
Cubietruck (1Wire - USB) - Produktiv

justme1968

das sollte mit 8 user readings  gehen die die eine zeile in 8 einzelne readings verwandeln. statt user readings ist ein notify das die 8 readings mit setreading erzeugt vielleicht effizienter.

um die 8 readings dann in der raumübersicht zusammen anzuzeigen kannst die readingsGroup verwenden.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

ritchie

Danke für den Hinweis,

ehrlich gesagt, muss ich das erstmal versuchen nachzuvollziehen, da ich die
Funktionen "setreading" und "readingsGroup" noch nicht kenne.

Gruss R.
IPU662  Ipfire & Fhem (Homematic + MAX) - Produktiv
Cubietruck (1Wire - USB) - Produktiv

ritchie

Hallo Justme1968,

irgendwie scheint das mit dem groupReading nicht so zu arbeiten, wie ich mir das erhoft habe.

Ich habe übrigens zuerst einen Fehler bekommen, das die Funktion "groupReading" unbekannt sei.
Nachdem ich "Update check" gemacht habe, sah ich, das diese Funktion erst nach einem Update verfügbar ist.
Mein Stand ist also ca. 1 Stunde alt.

erstmal meine Codezeilen:


#
# Luefter Steuerung
#
define flAusgangsKarte OWDevice 29.E11210000000 10
attr flAusgangsKarte alias Lueftersteuerung
attr flAusgangsKarte model DS2408
attr flAusgangsKarte polls PIO.0,PIO.1,PIO.2,PIO.3
attr flAusgangsKarte group Steuerung
attr flAusgangsKarte room Flur

attr flAusgangsKarte stateFormat { sprintf("Bit00 %s Bit01: %s Bit02%s Bit03: %s", getBooleanStateOutputOnOff(ReadingsVal("flAusgangsKarte","PIO.0",0)),getBooleanStateOutputOnOff(ReadingsVal("flAusgangsKarte","PIO.1",0)),getBooleanStateOutputOnOff(ReadingsVal("flAusgangsKarte","PIO.2",0)),getBooleanStateOutputOnOff(ReadingsVal("flAusgangsKarte","PIO.3",0))) ;; }

attr flAusgangsKarte userReadings Bit00 { ReadingsVal("flAusgangsKarte","PIO.0","-")},Bit01 { ReadingsVal("flAusgangsKarte","PIO.1","-")},Bit02 { ReadingsVal("flAusgangsKarte","PIO.2","-")},Bit03 { ReadingsVal("flAusgangsKarte","PIO.3","-");; }

define stateflAusgangsKarte readingsGroup flAusgangsKarte:Bit00 flAusgangsKarte:Bit01 flAusgangsKarte:Bit02
attr stateflAusgangsKarte alias Ausgangsrelais
attr stateflAusgangsKarte mapping {'flAusgangsKarte:Bit00' => 'Luefter 1:', 'flAusgangsKarte:Bit02' => 'Luefter 2:', 'flAusgangsKarte:Bit03' => 'Luefter 3:'}
attr stateflAusgangsKarte group Steuerung
attr stateflAusgangsKarte room Flur


Hier die Ausgabe dazu.

(siehe Anhang / see attachement)



Hierbei habe ich jetzt folgende "Aufgabenstellung" zu lösen:

- Obwohl ich ein Mapping angegeben habe, wird dieses nicht verwendet, aber der Alias Name
- Wie bekomme ich jetzt das geänderte Reading hin, welche ich unterhalb noch als Vergleich
  mit angezeigt bekomme
  Derzeit wird nur "0" und "1" angezeigt.

- Das Datum der letzten Aktualisierung will ich nicht darstellen.

- Der Devicename oberhalb des Status ist in meinem Fall überflüssig, da ich ihn ja links stehen habe.


Gruss R.

 
IPU662  Ipfire & Fhem (Homematic + MAX) - Produktiv
Cubietruck (1Wire - USB) - Produktiv

justme1968

- beim maping device und reading mit punkt trennen. nicht mit doppelpunkt.

- attribut noheading

- attribut notime

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

ritchie

Hallo Andre,

danke fuer die Hinweise:

Der Code sieht jetzt so aus und die Ausgabe stimmt jetzt soweit auch.

define stateflAusgangsKarte readingsGroup flAusgangsKarte:Bit00 flAusgangsKarte:Bit01 flAusgangsKarte:Bit02
attr stateflAusgangsKarte alias Ausgangsrelais
attr stateflAusgangsKarte mapping {'flAusgangsKarte.Bit00' => 'Luefter 1:', 'flAusgangsKarte.Bit01' => 'Luefter 2:', 'flAusgangsKarte.Bit02' => 'Luefter 3:'}
attr stateflAusgangsKarte group Steuerung
attr stateflAusgangsKarte room Flur
attr stateflAusgangsKarte noheading
attr stateflAusgangsKarte notime



(siehe Anhang / see attachement)


Jedoch würde ich gerne noch das StateFormat entsprechend anpassen:

attr flAusgangsKarte stateFormat { sprintf("Bit00 %s Bit01: %s Bit02%s Bit03: %s", getBooleanStateOutputOnOff(ReadingsVal("flAusgangsKarte","PIO.0",0)),getBooleanStateOutputOnOff(ReadingsVal("flAusgangsKarte","PIO.1",0)),getBooleanStateOutputOnOff(ReadingsVal("flAusgangsKarte","PIO.2",0)),getBooleanStateOutputOnOff(ReadingsVal("flAusgangsKarte","PIO.3",0))) ;; }

attr flAusgangsKarte userReadings Bit00 { ReadingsVal("flAusgangsKarte","PIO.0","-")}, Bit01 { ReadingsVal("flAusgangsKarte","PIO.1","-")}, Bit02 { ReadingsVal("flAusgangsKarte","PIO.2","-")},Bit03 { ReadingsVal("flAusgangsKarte","PIO.3","-");; }


So habe ich das für die untere Ausgabe gelöst, weiss jetzt nur nicht, wie ich das StateFormat für einen readingGroups ändere ?

Gruss R.


IPU662  Ipfire & Fhem (Homematic + MAX) - Produktiv
Cubietruck (1Wire - USB) - Produktiv

justme1968

wenn du sowieso jeden ausgang als eigenes reading hast (pio.x) kannst du die in der readingsGroup direkt verwenden und brauchst kein user reading.

das die 0/1 kannst du mit valueFormat mappen. {($VALUE eq '0')?'Aus':'Ein'}

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

ritchie

Hi,

ich habe folgendes Formate verwendet:

attr stateflAusgangsKarte valueFormat{(($VALUE eq '0')?'Aus':'Ein'),(($VALUE eq '0')?'Aus':'Ein'),(($VALUE eq '0')?'Aus':'Ein')}

und bekam dann immer so was:
ZitatUnmatched ( in regex; marked by <-- HERE in m/ valueFormat{(( <-- HERE $VALUE[ :;]/ at fhem.pl line 1974, <$fh> line 100.

Und FHEM hat sich verabschiedet ..


Edit:
Dann habe ich das hier versucht:

attr stateflAusgangsKarte valueFormat {(($VALUE eq '0')?'Aus':'Ein')}


So geht es dann doch ... Puh


Wie geht das denn, wenn ich unterschiedliche Werte habe ?

Gruss R.
IPU662  Ipfire & Fhem (Homematic + MAX) - Produktiv
Cubietruck (1Wire - USB) - Produktiv

justme1968

dann musst du dir eine perl funktion die z.b. mit diversen if/elsif/else den passenden wert für deine $VALUE zurück liefert.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

ritchie

hallo Andre,

was für einen Übergabeparameter hätte diese Funktion ?

Wäre es aus meinem Beispiel "flAusgangsKarte.Bit00".

oder hat diese Funktion dann mehr als einen Parameter ?

Kann man mit "readingsGroup" auch "webCmd" verwenden ?
Erste Versuche haben nette Meldungen gebracht.

Gruss R.
IPU662  Ipfire & Fhem (Homematic + MAX) - Produktiv
Cubietruck (1Wire - USB) - Produktiv

justme1968

die funktion hat keine übergabeparameter. du kannst aber $DEVICE, $READING und $VALUE verwenden. zurück gibst du immer den format string für genau eine zeile.

die readingsGroup ist nur zur reinen anzeige von werten. du kannst damit nicht schalten, speichern oder sonst etwas tun. nur anzeigen.

was möchtest du denn mit dem webCmd machen ?

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

ritchie

Hi,
Ich wollte den Ausgang manuell ein u. Ausschalten.

Gruss R.
IPU662  Ipfire & Fhem (Homematic + MAX) - Produktiv
Cubietruck (1Wire - USB) - Produktiv

justme1968

das geht erst mal nicht.

ich schaue gerade ich icons einbauen kann. danach vielleicht kommandos.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

ritchie

IPU662  Ipfire & Fhem (Homematic + MAX) - Produktiv
Cubietruck (1Wire - USB) - Produktiv

ak323

Hi zusammen,
mit diesem Post bin ich schon mal ein bißchen in die richtige Richtung gekommen...

Wie kann ich mir denn über die Abfrage der einzelnen "sensed" Werte eines DS2408 mit OWFS eine Anzeige realisieren, die mir in FHEM - am besten per Symbol - zeigt, ob die entsprechende vom Relais gesteuerte Pumpe gerade läuft oder nicht, oder der Reedkontakt (Fenster oder Garagentor) offen oder geschlossen ist (also Fenster auf/zu; Garage auf/zu) ... ?

Ich komme da nicht so ganz weiter ...  :(

Danke für Eure Hilfe ... ak323.
RaspberryPi 2 im 19" Rack mit 16x2 i2c LCD, FHEM, diverse HomeMatic, 1-Wire (8x DS18B20, 3x DS2408, 2x DS2413, 5x DS2401, DS2423 ATTiny) über DS9490R#, Waterkotte Ai1QE (WWPR) Wärmepumpe über Modbus, WH1080 über Signalduino, 433MHz Funksteckdosen, WiFi RGBWW via Tasmota, ...