FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: ritchie am 29 August 2013, 23:36:01

Titel: Ausgangsstatus einer 8Port Karte untereinander Darstellen
Beitrag von: ritchie am 29 August 2013, 23:36:01
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.





Titel: Aw: Ausgangsstatus einer 8Port Karte untereinander Darstellen
Beitrag von: justme1968 am 30 August 2013, 09:21:06
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
Titel: Aw: Ausgangsstatus einer 8Port Karte untereinander Darstellen
Beitrag von: ritchie am 30 August 2013, 12:34:19
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.
Titel: Aw: Ausgangsstatus einer 8Port Karte untereinander Darstellen
Beitrag von: ritchie am 01 September 2013, 14:54:07
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.

 
Titel: Aw: Ausgangsstatus einer 8Port Karte untereinander Darstellen
Beitrag von: justme1968 am 01 September 2013, 15:04:10
- beim maping device und reading mit punkt trennen. nicht mit doppelpunkt.

- attribut noheading

- attribut notime

gruss
  andre
Titel: Aw: Ausgangsstatus einer 8Port Karte untereinander Darstellen
Beitrag von: ritchie am 01 September 2013, 15:26:37
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.


Titel: Aw: Ausgangsstatus einer 8Port Karte untereinander Darstellen
Beitrag von: justme1968 am 01 September 2013, 19:05:17
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
Titel: Aw: Ausgangsstatus einer 8Port Karte untereinander Darstellen
Beitrag von: ritchie am 01 September 2013, 20:26:04
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.
Titel: Aw: Ausgangsstatus einer 8Port Karte untereinander Darstellen
Beitrag von: justme1968 am 02 September 2013, 00:45:18
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
Titel: Aw: Ausgangsstatus einer 8Port Karte untereinander Darstellen
Beitrag von: ritchie am 02 September 2013, 21:24:53
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.
Titel: Aw: Ausgangsstatus einer 8Port Karte untereinander Darstellen
Beitrag von: justme1968 am 02 September 2013, 22:04:13
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
Titel: Aw: Ausgangsstatus einer 8Port Karte untereinander Darstellen
Beitrag von: ritchie am 02 September 2013, 22:29:05
Hi,
Ich wollte den Ausgang manuell ein u. Ausschalten.

Gruss R.
Titel: Aw: Ausgangsstatus einer 8Port Karte untereinander Darstellen
Beitrag von: justme1968 am 02 September 2013, 22:47:40
das geht erst mal nicht.

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

gruss
  andre
Titel: Aw: Ausgangsstatus einer 8Port Karte untereinander Darstellen
Beitrag von: ritchie am 02 September 2013, 22:54:43
Kein Problem.
Titel: Antw:Ausgangsstatus einer 8Port Karte untereinander Darstellen
Beitrag von: ak323 am 18 März 2016, 22:09:42
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.
Titel: Antw:Ausgangsstatus einer 8Port Karte untereinander Darstellen
Beitrag von: schka17 am 18 März 2016, 22:37:05
Ich habe so etwas ähnliches mit den Statusleds meiner Heizung meiner Heizung gemacht, mittels clonedummy
(http://uploads.tapatalk-cdn.com/20160318/48562fc94a321c78388db52b95ad64b6.jpg)(http://uploads.tapatalk-cdn.com/20160318/9e95e28d3d2648c59a39d21a5aafec93.jpg)


Sent from my iPad using Tapatalk
Titel: Antw:Ausgangsstatus einer 8Port Karte untereinander Darstellen
Beitrag von: ak323 am 18 März 2016, 22:56:43
... Wenn Du mir jetzt noch verrätst wie Du die Ports Abfrage in FHEM definiert hast, habe ich vielleicht auch bald so schöne Anzeigen !!

Danke.
Titel: Antw:Ausgangsstatus einer 8Port Karte untereinander Darstellen
Beitrag von: schka17 am 19 März 2016, 07:17:21
Was meinst du mit Portabfrage?
Heizung_Interface ist DS2408
Internals:
   CFGFN      ./FHEM/heizung_ow.cfg
   CHANGED
   DEF        29.245712000000 5
   IODev      OWServer
   LAST_READ_FAILED 0
   NAME       Heizung_Interface
   NR         221
   NTFY_ORDER 50b-Heizung_Interface
   STATE      sensed.0: 0  sensed.1: 0  sensed.2: 0  sensed.3: 1  sensed.4: 0  sensed.5: 1  sensed.6: 1  sensed.7: 0  alarm: 1
   TYPE       OWDevice
   Helper:
     Dblog:
       Sensed.0:
         Dblog:
           TIME       1458367402.57826
           VALUE      0
       Sensed.1:
         Dblog:
           TIME       1458367844.34527
           VALUE      0
       Sensed.2:
         Dblog:
           TIME       1458367844.34527
           VALUE      0
       Sensed.3:
         Dblog:
           TIME       1458367844.34527
           VALUE      1
       Sensed.4:
         Dblog:
           TIME       1458367670.36641
           VALUE      0
       Sensed.5:
         Dblog:
           TIME       1458367432.34614
           VALUE      1
       Sensed.6:
         Dblog:
           TIME       1458367582.11777
           VALUE      1
       Sensed.7:
         Dblog:
           TIME       1458367432.34614
           VALUE      0
   Readings:
     2016-03-19 07:10:54   alarm           1
     2016-03-19 07:10:54   sensed.0        0
     2016-03-19 07:10:54   sensed.1        0
     2016-03-19 07:10:54   sensed.2        0
     2016-03-19 07:10:54   sensed.3        1
     2016-03-19 07:10:54   sensed.4        0
     2016-03-19 07:10:54   sensed.5        1
     2016-03-19 07:10:54   sensed.6        1
     2016-03-19 07:10:54   sensed.7        0
     2016-03-19 07:10:54   state           sensed.0: 0  sensed.1: 0  sensed.2: 0  sensed.3: 1  sensed.4: 0  sensed.5: 1  sensed.6: 1  sensed.7: 0  alarm: 1
   Fhem:
     address    29.245712000000
     alerting   1
     bus        bus.0
     interfaces state
     interval   5
     getters:
       PIO.0
       PIO.1
       PIO.2
       PIO.3
       PIO.4
       PIO.5
       PIO.6
       PIO.7
       PIO.ALL
       PIO.BYTE
       address
       crc8
       family
       id
       latch.0
       latch.1
       latch.2
       latch.3
       latch.4
       latch.5
       latch.6
       latch.7
       latch.ALL
       latch.BYTE
       locator
       por
       power
       r_address
       r_id
       r_locator
       sensed.0
       sensed.1
       sensed.2
       sensed.3
       sensed.4
       sensed.5
       sensed.6
       sensed.7
       sensed.ALL
       set_alarm
       strobe
       type
     polls:
       sensed.0
       sensed.1
       sensed.2
       sensed.3
       sensed.4
       sensed.5
       sensed.6
       sensed.7
     setters:
       LCD_H/clear
       LCD_H/home
       LCD_H/message
       LCD_H/onoff
       LCD_H/screen
       LCD_H/screenyc
       LCD_M/clear
       LCD_M/home
       LCD_M/message
       LCD_M/onoff
       LCD_M/screen
       LCD_M/screenyc
       PIO.0
       PIO.1
       PIO.2
       PIO.3
       PIO.4
       PIO.5
       PIO.6
       PIO.7
       PIO.ALL
       PIO.BYTE
       latch.0
       latch.1
       latch.2
       latch.3
       latch.4
       latch.5
       latch.6
       latch.7
       latch.ALL
       latch.BYTE
       por
       set_alarm
       strobe
     state:
       sensed.0
       sensed.1
       sensed.2
       sensed.3
       sensed.4
       sensed.5
       sensed.6
       sensed.7
Attributes:
   IODev      OWServer
   event-min-interval sensed.*:600
   event-on-change-reading sensed.0,sensed.1,sensed.2,sensed.4,sensed.5,sensed.3,sensed.6,sensed.7
   event-on-update-reading sensed.0,sensed.1,sensed.2,sensed.4,sensed.5,sensed.3,sensed.6,sensed.7
   icon       it_net
   model      DS2408
   room       OneWire_Devices
   uncached   0

Clonedummy cloned dieses Device, und hier definiere ich was ich anzeigen will
Internals:
   CFGFN      ./FHEM/heizung_neu.cfg
   CHANGED
   DEF        Heizung_Interface sensed.5
   NAME       c_HZ_BETRIEBSBEREIT
   NOTIFYDEV  Heizung_Interface
   NOTIFYSTATE sensed.5
   NR         308
   NTFY_ORDER 50-c_HZ_BETRIEBSBEREIT
   STATE      1
   TYPE       cloneDummy
   Helper:
     Dblog:
       Sensed.5:
         Dblog:
           TIME       1458368032.55871
           VALUE      1
   Readings:
     2016-03-19 07:13:52   _state          sensed.5: 1
     2015-08-20 10:35:13   alarm           0
     2014-09-15 10:25:29   sensed.0        0
     2014-09-15 10:25:30   sensed.1        0
     2014-09-15 10:25:30   sensed.2        0
     2014-09-15 10:25:31   sensed.3        0
     2014-09-15 10:25:31   sensed.4        0
     2016-03-19 07:13:52   sensed.5        1
     2014-09-15 10:25:32   sensed.6        1
     2014-09-15 10:25:32   sensed.7        0
     2014-09-14 10:10:32   set_alarm       0
     2016-03-19 07:14:55   state           active
Attributes:
   alias      HZ_BETRIEBSBEREIT
   cloneIgnore sensed.0,sensed.1,sensed.2,sensed.3,sensed.4,sensed.6,sensed.7
   devStateIcon 1:led.green 0:led.off
   event-on-change-reading sensed.5
   event-on-update-reading sensed.5
   group      HEIZUNGSTATUS
   icon       max_wandthermostat
   room       Heizung
   stateFormat sense

Eben in diesem Fall nur sensed.5


Sent from my iPad using Tapatalk
Titel: Antw:Ausgangsstatus einer 8Port Karte untereinander Darstellen
Beitrag von: ak323 am 19 April 2017, 22:20:41
... sorry, aber ich kapier das nicht ... ich will doch nur in FHEM ein Symbol in rot darstellen, wenn ein "sensed" (wie bei Dir sensed.5) = 0 ist in weiß darstellen, wenn sensed.5 = 1 ist in rot ....

Könnte mir bitte jemand helfen, wie ich das in der .cfg definieren muss ... ?
DANKE.

#####################################################################################
Update 08.10.2017:
https://forum.fhem.de/index.php/topic,77736.0.html (https://forum.fhem.de/index.php/topic,77736.0.html)