Fragen zur Konfiguration von Templates

Begonnen von coolice, 06 Mai 2021, 18:13:47

Vorheriges Thema - Nächstes Thema

draddy

Hallo,

bastel auch grade meine FhemAPP zusammen - bis jetzt gefällt mir das ganze sehr gut ;)

ich äusser einfach mal nen "Wunsch" und schau was kommt ...

Würde gern ein panel erstellen, indem die Fritzboxen und Repeater im Haus aufgeführt würden - da das Fritzbox Modul keinen echten "on|off" status liefert, würde ich als "status" gerne das vorhanden sein einer IP verwenden. Zusätzlich hätte ich bei der Hauptbox (Mesh) gerne die Möglichkeit die 3 WLAN (2,4G 5G Gast) schalten zu können ...

Überhaupt möglich? ^^

thx
Jens
OMV5@AsRock j3455 8GB RAM
FHEM@Docker, Shelly "starter pack" 4x PlugS, 2x Bulb Duo RGB, Shelly 2.5, Shelly Plus 1, DoorBird 2103V

jemu75

Zitat von: draddy am 15 März 2022, 11:14:39
Hallo,

bastel auch grade meine FhemAPP zusammen - bis jetzt gefällt mir das ganze sehr gut ;)

ich äusser einfach mal nen "Wunsch" und schau was kommt ...

Würde gern ein panel erstellen, indem die Fritzboxen und Repeater im Haus aufgeführt würden - da das Fritzbox Modul keinen echten "on|off" status liefert, würde ich als "status" gerne das vorhanden sein einer IP verwenden. Zusätzlich hätte ich bei der Hauptbox (Mesh) gerne die Möglichkeit die 3 WLAN (2,4G 5G Gast) schalten zu können ...

Überhaupt möglich? ^^

thx
Jens

Hallo,

schön zu lesen, dass Du dich für FHEMApp begeistert hast.  :)
Die FHEMApp ist generisch aufgebaut und somit sehr flexibel konfigurierbar. Leider ist die Doku dadurch auch recht umfangreich. ;)
Entscheidend für die Anzeige von Werten oder dem Schalten ist das jeweilige FHEM Device. D.h. alles was Du im FHEM Device siehst und schalten kannst, dass kannst du auch in FHEMApp anzeigen bzw. schalten.

Zu Deiner Frage:
Ja, du kannst deine "Fritz-Komponenten" in einem Panel darstellen. Wie oben schon geschrieben, ist die Voraussetzung, dass Du die Boxen, Repeater ect. in FHEM eingebunden hast.
Du könntest nun für jede "Fritzkomponente" ein PanelItem (eine Zeile im Panel) definieren.
Welche Möglichkeiten zur Anzeige von Werten und zum Schalten in PanelItems zur Verfügung stehen, ist in der Doku hier beschrieben:
https://github.com/jemu75/fhemApp#definition-von-panelitems

Vorgehensweise wäre nun also folgende:
1) in einem FHEM Device (z.B. dummy oder structure) über appOptions ein Panel konfigurieren
2) in deinen FHEM Device(s) der "Fritzkomponente(n)" über appOptions das PanelItem konfigurieren

Ich hoffe damit erstmal einen Ansatz geliefert zu haben.  :)

Melde Dich gern, wenn Du weiter Fragen hast.

draddy

#122
hi,

nun, der Ansatz ist relativ klar, habe bereits Panel für Lichter z.B. gebaut aber da ists relativ simpel - pro licht ein Reading und ein Schalter xD

habe einen Dummy erstellt welcher das appOption fürs panel hat, aber stehe echt aufm schlauch aktuell was den rest betrifft :D
also wie bekomme ich jetzt A mehrere Schalter in ein Panelobjekt, wie kann ich am geschicktesten das vorhanden sein einer ip als "status on" werten? ... ^^


andere sache noch:
bin grade dabei charts zu machen ... mein log speichert power (watt) und kwh für ein shelly device, jedoch, wenn das device aus ist, wird kein power 0 wert geschrieben ... im chart sieht das jetzt so aus als wäre das device von 0 bis 6 uhr gelaufen - was aber nicht stimmt (z.b. mein Monitor)
bringe ich das irgendwie hin, dass wenn kein reading da ist, der graf 0 zeigt? oder muss ich mein log irgendwie so überarbeiten, das er auch 0 werte  schreibt?

OMV5@AsRock j3455 8GB RAM
FHEM@Docker, Shelly "starter pack" 4x PlugS, 2x Bulb Duo RGB, Shelly 2.5, Shelly Plus 1, DoorBird 2103V

jemu75

#123
Zitat von: draddy am 15 März 2022, 16:37:54
hi,

nun, der Ansatz ist relativ klar, habe bereits Panel für Lichter z.B. gebaut aber da ists relativ simpel - pro licht ein Reading und ein Schalter xD

habe einen Dummy erstellt welcher das appOption fürs panel hat, aber stehe echt aufm schlauch aktuell was den rest betrifft :D
also wie bekomme ich jetzt A mehrere Schalter in ein Panelobjekt, wie kann ich am geschicktesten das vorhanden sein einer ip als "status on" werten? ... ^^


andere sache noch:
bin grade dabei charts zu machen ... mein log speichert power (watt) und kwh für ein shelly device, jedoch, wenn das device aus ist, wird kein power 0 wert geschrieben ... im chart sieht das jetzt so aus als wäre das device von 0 bis 6 uhr gelaufen - was aber nicht stimmt (z.b. mein Monitor)
bringe ich das irgendwie hin, dass wenn kein reading da ist, der graf 0 zeigt? oder muss ich mein log irgendwie so überarbeiten, das er auch 0 werte  schreibt?

Lass uns mal der Reihe nach vorgehen.
Vorab ein paar Fragen
1) in welchem FHEM Device hast du das Panel zur Darstellung der "Fritz-Komponenten" konfiguriert? Bitte mal ein JsonList2 von dem Device hier anfügen
2) in welchem FHEM Device steht die IP, die du prüfen möchtest?
3) hast du das PanelItem zu Anzeige des Status schon konfiguriert? Wenn ja, bitte auch von diesem FHEM Device mal ein JsonList2 hier posten.
4) was steht in dem reading IP, wenn die Box nicht verbunden ist?
5) was möchtest du alles schalten?

draddy

#124
moin,
ok, hoffe du meinst das mit JsonList2 ^^

dummy für das Panel

{
  "Arg":"d_NetworkAPP",
  "Results": [
  {
    "Name":"d_NetworkAPP",
    "PossibleSets":" ",
    "PossibleAttrs":"alias comment:textField-long eventMap:textField-long group room suppressReading userattr userReadings:textField-long verbose:0,1,2,3,4,5  disable disabledForIntervals readingList setExtensionsEvent:1,0 setList useSetExtensions event-aggregator event-min-interval event-on-change-reading event-on-update-reading oldreadings stateFormat:textField-long timestamp-on-change-reading cmdIcon devStateIcon:textField-long devStateStyle icon sortby webCmd webCmdLabel:textField-long widgetOverride appOptions:textField-long",
    "Internals": {
      "CFGFN": "",
      "FUUID": "62305d7c-f33f-0d8f-807b-fd79e42d9c1d3f05",
      "NAME": "d_NetworkAPP",
      "NR": "33695",
      "STATE": "???",
      "TYPE": "dummy"
    },
    "Readings": { },
    "Attributes": {      "appOptions": "{\"template\": \"panel\", \"connected\": \n\u0009{\"FB Restart\":\"Shelly_FB\", \"FB6591\":\"FritzBox\", \"FB7490\":\"FritzBox2\", \"FR1200\":\"FritzRepeater1200\"},\n\"name\":\"Netzwerk\",\n\"home\":\"true\"\n}" }
  }  ],
  "totalResultsReturned":1
}


eine der Fritzboxen (Heimnetz Geräte entfernt)

{
  "Arg":"FritzBox2",
  "Results": [
  {
    "Name":"FritzBox2",
    "PossibleSets":"call checkAPIs:noArg diversity guestWlan:on,off password ring tam update:noArg wlan:on,off wlan2.4:on,off wlan5:on,off",
    "PossibleAttrs":"alias comment:textField-long eventMap:textField-long group room suppressReading userattr userReadings:textField-long verbose:0,1,2,3,4,5  allowShellCommand:0,1 allowTR064Command:0,1 boxUser disable:0,1 defaultCallerName defaultUploadDir forceTelnetConnection:0,1 fritzBoxIP INTERVAL m3uFileLocal m3uFileURL ringWithIntern:0,1,2 telnetUser telnetTimeOut useGuiHack:0,1 userTickets event-aggregator event-min-interval event-on-change-reading event-on-update-reading oldreadings stateFormat:textField-long timestamp-on-change-reading cmdIcon devStateIcon:textField-long devStateStyle icon sortby webCmd webCmdLabel:textField-long widgetOverride appOptions:textField-long",
    "Internals": {
      "APICHECKED": "1",
      "DEF": "192.168.177.3",
      "FUUID": "621a32e6-f33f-0d8f-d887-3dd67e28d2ed4b01",
      "FVERSION": "72_FRITZBOX.pm:0.221250/2020-06-06",
      "HOST": "192.168.177.3",
      "INTERVAL": "300",
      "LUAQUERY": "1",
      "M3U_LOCAL": "./www/images/FritzBox2.m3u",
      "M3U_URL": "http://172.17.0.4:8088/fhem/images/FritzBox2.m3u",
      "MODEL": "FRITZ!Box 7490",
      "NAME": "FritzBox2",
      "NR": "66",
      "REMOTE": "1",
      "SECPORT": "xxxxx",
      "STATE": "1:on\n2:on\n3:on\n<br>\nOnline: 192.168.177.3",
      "TELNET": "0",
      "TR064": "1",
      "TYPE": "FRITZBOX",
      "WEBCM": "0"
    },
    "Readings": {
      "alarm1": { "Value":"Wecker 1", "Time":"2022-03-15 19:30:46" },
      "alarm1_state": { "Value":"off", "Time":"2022-03-15 19:30:46" },
      "alarm1_target": { "Value":"FON 1", "Time":"2022-03-15 19:30:46" },
      "alarm1_time": { "Value":"00:00", "Time":"2022-03-15 19:30:46" },
      "alarm1_wdays": { "Value":"daily", "Time":"2022-03-15 19:30:46" },
      "alarm2": { "Value":"Wecker 2", "Time":"2022-03-15 19:30:46" },
      "alarm2_state": { "Value":"off", "Time":"2022-03-15 19:30:46" },
      "alarm2_target": { "Value":"FON 1", "Time":"2022-03-15 19:30:46" },
      "alarm2_time": { "Value":"00:00", "Time":"2022-03-15 19:30:46" },
      "alarm2_wdays": { "Value":"daily", "Time":"2022-03-15 19:30:46" },
      "alarm3": { "Value":"Wecker 3", "Time":"2022-03-15 19:30:46" },
      "alarm3_state": { "Value":"off", "Time":"2022-03-15 19:30:46" },
      "alarm3_target": { "Value":"FON 1", "Time":"2022-03-15 19:30:46" },
      "alarm3_time": { "Value":"00:00", "Time":"2022-03-15 19:30:46" },
      "alarm3_wdays": { "Value":"daily", "Time":"2022-03-15 19:30:46" },
      "box_connect": { "Value":"5", "Time":"2022-03-15 19:30:46" },
      "box_cpuTemp": { "Value":"51", "Time":"2022-03-15 19:30:46" },
      "box_dect": { "Value":"on", "Time":"2022-03-15 19:30:46" },
      "box_fwVersion": { "Value":"113.07.29", "Time":"2022-03-15 19:30:46" },
      "box_guestWlan": { "Value":"on", "Time":"2022-03-15 19:30:46" },
      "box_guestWlanCount": { "Value":"0", "Time":"2022-03-15 19:30:46" },
      "box_guestWlanRemain": { "Value":"-1", "Time":"2022-03-15 19:30:46" },
      "box_ipExtern": { "Value":"192.168.177.3", "Time":"2022-03-15 19:30:46" },
      "box_model": { "Value":"FRITZ!Box 7490 [avm]", "Time":"2022-03-14 11:20:35" },
      "box_moh": { "Value":"default", "Time":"2022-03-15 19:30:46" },
      "box_powerRate": { "Value":"46", "Time":"2022-03-15 19:30:46" },
      "box_rateDown": { "Value":"0.000", "Time":"2022-03-15 19:30:46" },
      "box_rateUp": { "Value":"0.000", "Time":"2022-03-15 19:30:46" },
      "box_stdDialPort": { "Value":"dect1", "Time":"2022-03-15 19:30:46" },
      "box_tr064": { "Value":"on", "Time":"2022-03-15 19:30:46" },
      "box_tr069": { "Value":"off", "Time":"2022-03-15 19:30:46" },
      "box_wlanCount": { "Value":"14", "Time":"2022-03-15 19:30:46" },
      "box_wlan_2.4GHz": { "Value":"on", "Time":"2022-03-15 19:30:46" },
      "box_wlan_5GHz": { "Value":"on", "Time":"2022-03-15 19:30:46" },
      "dect1": { "Value":"Jens", "Time":"2022-03-15 19:30:46" },
      "dect1_fwVersion": { "Value":"0.00", "Time":"2022-03-15 19:30:46" },
      "dect1_intRingTone": { "Value":"HandsetDefault", "Time":"2022-03-15 19:30:46" },
      "dect1_intern": { "Value":"610", "Time":"2022-03-15 19:30:46" },
      "dect1_manufacturer": { "Value":"Siemens", "Time":"2022-03-15 19:30:46" },
      "dect1_model": { "Value":"0x00", "Time":"2022-03-15 19:30:46" },
      "dect2": { "Value":"Alex", "Time":"2022-03-15 19:30:46" },
      "dect2_fwVersion": { "Value":"0.00", "Time":"2022-03-15 19:30:46" },
      "dect2_intRingTone": { "Value":"HandsetDefault", "Time":"2022-03-15 19:30:46" },
      "dect2_intern": { "Value":"611", "Time":"2022-03-15 19:30:46" },
      "dect2_manufacturer": { "Value":"Siemens", "Time":"2022-03-15 19:30:46" },
      "dect2_model": { "Value":"0x00", "Time":"2022-03-15 19:30:46" },
      "gsm_internet": { "Value":"0", "Time":"2022-03-15 19:30:46" },
      "lastReadout": { "Value":"473 values captured in 2.00 s", "Time":"2022-03-15 19:30:46" },

      "state": { "Value":"WLAN: on gWLAN: on", "Time":"2022-03-15 19:30:46" },
      "tam1": { "Value":"Anrufbeantworter", "Time":"2022-03-15 19:30:46" },
      "tam1_newMsg": { "Value":"0", "Time":"2022-03-15 19:30:46" },
      "tam1_oldMsg": { "Value":"0", "Time":"2022-03-15 19:30:46" },
      "tam1_state": { "Value":"off", "Time":"2022-03-15 19:30:46" },
      "user01": { "Value":"(guest)", "Time":"2022-03-15 19:30:46" },
      "user01_thisMonthTime": { "Value":"0:00", "Time":"2022-03-15 19:30:46" },
      "user01_todaySeconds": { "Value":"0", "Time":"2022-03-15 19:30:46" },
      "user01_todayTime": { "Value":"0:00", "Time":"2022-03-15 19:30:46" },
      "user01_type": { "Value":"Guest", "Time":"2022-03-15 19:30:46" },
      "userTicket01": { "Value":"519969", "Time":"2022-03-15 19:30:46" }
    },
    "Attributes": {
      "alias": "Fritzbox 7490",
      "boxUser": "fritz7538",
      "devStateIcon": "1.on:wifi-2.4G@green:wlan2.4+off 1.off:wifi-2.4G@red:wlan2.4+on \n2.on:wifi-5G@green:wlan5+off 2.off:wifi-5G@red:wlan5+on \n3.on:wifi-Gast@green:guestWlan+off 3.off:wifi-Gast@red:guestWlan+on",
      "devStateStyle": "style=\"text-align:right;;",
      "icon": "it_FritzBox@red",
      "room": "Devices->Network",
      "sortby": "2",
      "stateFormat": "1:box_wlan_2.4GHz\n2:box_wlan_5GHz\n3:box_guestWlan\n<br>\nOnline: box_ipExtern"
    }
  }  ],
  "totalResultsReturned":1
}

gute idee wegen IP check ... passiert leider nix - sprich wenn ich netzwerkkabel rausnehm und box damit nicht mehr erreichbar ist, kommt nur log eintrag das sie nicht erreichbar ist ... also - check mittels ip ist wohl nix ^^

panelitem eintrag im device habe ich noch nicht, (wieder gelöscht weil nicht weiter gekommen ^^)

{
"template": "switch",
"name": "FB 7490",
"room": "Netzwerk",
  "panel": {
    "status": ["state:'WLAN: off'::0", "state:'WLAN: on'::100"],
    "btn": ["state:on:mdi-lightbulb-on", "state:off:mdi-lightbulb-outline"],
    "click": ["state:off:on", "state:on:off"]
  }
}

das war der versuch meine "standard vorlage" bissl anzupassen ...

Wunschliste

  • Status anzeige für die Fritzboxen (on|off) 2x FB 1x Repeater
  • Möglichkeit WLAN(s) an und aus zuschalten (2,4G 5G Gast) nach möglichkeit in einer "zeile" des Panels - eventuell menü?

der aufgeführte FB Shelly kann ignoriert werden, dieser hängt an der Hauptbox mit "auto on nach 30 sekunden" um einen Fritzbox üblichen "nehmen sie das Gerät mal 30 Sekunden vom Strom" durch führen zu können :D

hoffe das bringt uns irgendwie weiter ;)
OMV5@AsRock j3455 8GB RAM
FHEM@Docker, Shelly "starter pack" 4x PlugS, 2x Bulb Duo RGB, Shelly 2.5, Shelly Plus 1, DoorBird 2103V

Jamo

#125
Zitat von: draddy am 15 März 2022, 11:14:39
Hallo,
....Würde gern ein panel erstellen, indem die Fritzboxen und Repeater im Haus aufgeführt würden - da das Fritzbox Modul keinen echten "on|off" status liefert, würde ich als "status" gerne das vorhanden sein einer IP verwenden. Zusätzlich hätte ich bei der Hauptbox (Mesh) gerne die Möglichkeit die 3 WLAN (2,4G 5G Gast) schalten zu können ...

Hallo Draddy,
ich habe so was in der Art schon mal gemacht, mit einem Panel, wo ich die FB und einen DVBc Repeater ins Panel eingebunden habe:
Unten das Bild vom Panel mit dem Menue für die verschiedenen Wlan on/off Optionen.
Weil der Repeater und der Repeater im Mesh sind, wird das Repeater WLAN immer so wie das Master FB device geschalten, deswegen habe ich da als Eintrag "-FBox & FRep -" drüber geschrieben. (Das AutoOff ist hier für Dich ohne Belang).

Meine Lösung ist: 
1) Ein neues Reading fhemAppState für die FritzBox, das sieht so ausfhemAppState  5:on 2.4:on Gast:on AutoOff:on

2) Die sub und das notify dazu, die das fhemAppState reading im Device FritzBox erzeugt:
defmod FritzBox_n notify F ritzBox:box_guestWlan:.*|FritzBox:box_wlan_2.4GHz:.*|FritzBox:box_wlan_5GHz:.* {myFritzBox_n()}

sub myFritzBox_n {
    my $wlan5     = ReadingsVal($NAME,'box_wlan_5GHz','nA');
    my $wlan2     = ReadingsVal($NAME,'box_wlan_2.4GHz','nA');
    my $wlang     = ReadingsVal($NAME,'box_guestWlan','nA');
    my $WLAutoOff = ReadingsVal('WLANAutoOff','state','nA');
    fhem ("sleep 0.5 sleep_FritzBox_n;setreading FritzBox fhemAppState ".'5:'.$wlan5.'   2.4:'.$wlan2.'   Gast:'.$wlang.'   AutoOff:'.$WLAutoOff);}


Das attr FritzBox appOptions dazu:
attr FritzBox appOptions { "name": "FritzBox", "panel": { "status": [
"fhemAppState:.*on.*on.*on.*:%s:100:success",
"fhemAppState:.*off.*off.*off.*:%s:0:success",
"fhemAppState:.*on.*off.*off.*:%s:33:info",
"fhemAppState:.*off.*on.*off.*:%s:33:info",
"fhemAppState:.*off.*off.*on.*:%s:33:error",
"fhemAppState:.*on.*on.*off.*:%s:66:info",
"fhemAppState:.*on.*off.*on.*:%s:66:warning",
"fhemAppState:.*off.*on.*on.*:%s:66:warning"], "btn": ["state:WLAN..off.gWLAN..off:mdi-toggle-switch-off-outline","state::mdi-toggle-switch"],
"menu": [" - FBox & FRep - :","AutoOff on:set WLANAutoOff on","AutoOff Off:set WLANAutoOff off","Wlan On:set FritzBox wlan on","Wlan Off:set FritzBox wlan off",
"gWlan On:set FritzBox guestWlan on","gWlan Off:set FritzBox guestWlan off","Wlan 5 On:set FritzBox wlan5 on","Wlan 5 Off:set FritzBox wlan5 off",
"Wlan 2.4 On:set FritzBox wlan2.4 on","Wlan 2.4 Off:set FritzBox wlan2.4 off"] }}

Je nachdem wieviel "WLAN angeschaltet ist", desto länger ist der Staus Bar.

Das Panel dazu:
defmod panelInternet dummy
attr panelInternet alias Internet
attr panelInternet appOptions { "template": "panel", "name": "Internet", "home": true, "dashboard": false, "group": "Arbeit", "sortby": 10, "connected": { "FBx": "FritzBox", "SDVBc": "Schalter_DVBc", . . . . . . . . .. .
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/ConbeeII, FB, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack

Jamo

Zitat von: draddy am 15 März 2022, 19:51:05
moin,
...gute idee wegen IP check ... passiert leider nix - sprich wenn ich netzwerkkabel rausnehm und box damit nicht mehr erreichbar ist, kommt nur log eintrag das sie nicht erreichbar ist ... also - check mittels ip ist wohl nix ^^
Falls Du checken willst, ob die FB mit dem Internet verbunden ist, gibt es hier https://forum.fhem.de/index.php/topic,124986.msg1195753.html#msg1195753 Lösungsansetze, die auch greifen, falls der eigene DNS Server wie AdGuard oder PiHole ausgefallen ist. Dafür könnte man einfach den fhemAppState von oben erweitern.
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/ConbeeII, FB, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack

draddy

moin,

nein mit der IP war eigentlich nur die idee irgendeine art von "status" zu bekommen, hatte, ohne testen, die hoffnung das ip auf "no ip" oder so springt, wenn die fritzbox nicht erreichbar ist ...

für den rest danke ich dir erstmal! sieht schonmal so aus wie ich mir das vorgestellt habe ;) 

das auto off denke ich bezieht sich auf das Gast Wlan auto off? - kann ich das einfach raus schmeissen im notify und menü oder muss ich im  fhemAppState bereich von appOptions auch noch was beachten?

ich geh mal basteln ;)
OMV5@AsRock j3455 8GB RAM
FHEM@Docker, Shelly "starter pack" 4x PlugS, 2x Bulb Duo RGB, Shelly 2.5, Shelly Plus 1, DoorBird 2103V

draddy

soo, also, das hat sehr gut geklappt!

habe einfach das autowlanoff zeugs rausgeschmissen ...

gibts jetzt noch ne quick%dirty methode nen status für fritzbox 2 und repeater zu bekommen? für die beiden reicht es vollkommen aus, wenn der status "on" ist wenn box|repeater da ist, bzw. off, wenn sie nicht da ist (offline, netzwerkkabel getrennt, kein strom was auch immer)

thx
Jens
OMV5@AsRock j3455 8GB RAM
FHEM@Docker, Shelly "starter pack" 4x PlugS, 2x Bulb Duo RGB, Shelly 2.5, Shelly Plus 1, DoorBird 2103V

Jamo

#129
Zitat von: draddy am 16 März 2022, 00:05:57
...gibts jetzt noch ne quick%dirty methode nen status für fritzbox 2 und repeater zu bekommen? für die beiden reicht es vollkommen aus, wenn der status "on" ist wenn box|repeater da ist, bzw. off, wenn sie nicht da ist (offline, netzwerkkabel getrennt, kein strom was auch immer)
Hallo Jens, suchst Du jetzt 1) eine Möglichkeit in fhem, um den status zu bekommen (und wie Du das in fhem einbindest weisst Du dann selber), oder 2) was um den Status in deine fhemApp reinzubekommen?
1) wäre presence mit lan-ping übe die IP adresse deiner fritzbox 2 und repeater
2) Für das presence device müsstest Du z.B. einfach den state (present/absent) in fhemApp abbilden
Grüsse!
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/ConbeeII, FB, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack

draddy

also in FHEM habe ich die 2. Box und den Repeater auch über das Fritzbox modul drin ...

dem modul fehlt eben, wie schonmal gesagt, einfach ein reading alla "is online" oder so, was sich ändert, wenn eben nicht online ist ...

wie würde das mit ping innerhalb von fhem klappen? weil, wenn ich das irgendwie in das jeweilige device bekomme und dann als reading speicher, hätte ich ja für FHEMAPP auch gleich was ich brauche.
OMV5@AsRock j3455 8GB RAM
FHEM@Docker, Shelly "starter pack" 4x PlugS, 2x Bulb Duo RGB, Shelly 2.5, Shelly Plus 1, DoorBird 2103V

Jamo

#131
Weil ja auch die Fritzbox selber presence/absence bereitstellt, sähe eine alternative Lösung so aus:

1) In deiner ersten Fritzbox (die Haupt-FB) folgende Userreadings machen. Dabei nehme ich an, das deine FB2 über LAN mit der FritzBox verbunden ist, dein Repeater über WLAN. Beide können dazu noch über einen Schalter an- und ausgeschaltet werden. Der Schalter hat ein Reading 'state' das 'on' oder 'off' ist. Falls keine Schalter vorhanden, einfach z.B das ,'Schalter_FB2' und/oder ,'Schalter_Repeater' weglassen.
attr FritzBox userReadings
Presence_FritzBox2 {checkMACpresent($name,'FB:ZW:EI:MC:AD:DR','LAN','Schalter_FB2')},
Presence_Repeater  {checkMACpresent($name,'RE:PE:AT:MC:AD:DR','WLAN','Schalter_Repeater')}


2) folgende Sub in deine 99_MyUtils.pm reinkopieren:
################################################################################
### FB Lan Check mit Schalter, wenn Schalter aus -> absent                   ###
### function {checkMACpresent($name,'DI:EM:AC:AD:DR:ES','LAN oder WLAN oder gWLAN','Schalter')}###
################################################################################
sub checkMACpresent {
  my $sub          = 'checkMACpresent';
  my $device       = shift // return "Error, $sub: we need the devicename as parameter!";
  my $MAC          = shift // return "Error, $sub: we need MAC as parameter!";
  my $NET          = shift // return "Error, $sub: we need WLAN or WLANg or LAN as parameter!";
  my $Switch       = shift // 'noSwitch';
  my $returnNum    = shift // 0;
  my $ret          = 'absent';
  my $retNum       = 0;
  my $hash         = $defs{$device};
  my $FBState      = $hash->{READINGS}{'state'}{VAL};
  my $Switchstate  = ReadingsVal($Switch,'state','off');
     $Switchstate  = $Switch eq 'noSwitch'?'on':$Switchstate;
  #Log 3, "[$sub] D=$device, N=$NET, $ret=ret, returnNum=$returnNum, Switchstate=$Switchstate, FBS=$FBState, $MAC";
  if ($Switchstate eq 'on' && $FBState ne 'disabled') {
       $MAC        =~ tr/:/_/;
       $MAC        = 'mac_'.uc($MAC);
    my $StatusMac  = defined($hash->{READINGS}{$MAC})?$hash->{READINGS}{$MAC}{VAL}:'inactive';
    if    ($StatusMac eq 'inactive') {}   #Log 3, "[$sub] LAN or WLAN StatusMac inactive oder Schalter aus, reading does not exist";
    elsif ($NET eq 'LAN') {
      if ($StatusMac =~ /(.*)s, 0/) {}    #Log 3, "[$sub] LAN StatusMac 0 MB/s";
      else {$ret = 'present';$retNum = 1} #Log 3, "[$sub] LAN Rückgabewert ist nicht "inactive", also ist das Gerät am Netzwerk angemeldet.";
    }
    elsif ($NET eq 'WLAN') {
      my $WlanState = $hash->{READINGS}{'wlanAny'}{VAL};
      if ($WlanState eq 'on') {
        if    ($StatusMac =~ /WLAN,.0.\/.0.Mbit.s.*/)  {$ret = 'present';$retNum = 1} # Dieser Zweig testet auf "<geraetename> (WLAN, 0 / 0 Mbit/s, 0)"
        elsif ($StatusMac =~ /.*\(WLAN.*/)             {$ret = 'present';$retNum = 1} #Log 3, "[$sub] WLAN Rückgabewert ist nicht "inactive", also ist das Gerät am Netzwerk angemeldet.";
      }
    }
    elsif ($NET eq 'WLANg') {
      my $WlanGState = $hash->{READINGS}{'box_guestWlan'}{VAL};
      if ($WlanGState eq 'on') {
        if    ($StatusMac =~ /gWLAN,.0.\/.0.Mbit.s.*/) {$ret = 'present';$retNum = 1} # Dieser Zweig testet auf "<geraetename> (gWLAN, 0 / 0 Mbit/s, 0)"
        elsif ($StatusMac =~ /.*\(gWLAN.*/)            {$ret = 'present';$retNum = 1} #Log 3, "[$sub] gWLAN Rückgabewert ist nicht "inactive", also ist das Gerät am Netzwerk angemeldet.";
      }
    }
  }
  if ($returnNum) {return $retNum;} else {return $ret;}
}


Damit bekommst Du in deiner HauptFritzbox zwei neue Readings für deinen Repeater und FB2, mit absence/presence. Das kannst Du dann aber auch noch ändern wenn Dir presence/absence nicht gefällt. Die Lösung ist an einem FHEM Wiki Artikel angelehnt, und ein bischen erweitert. Die MAC adressen musst Du entsprechend anpassen.
Das presence/absence kannst Du Dir dann wieder in dein Panel als state oder sonstwas holen.

PS: Das gehört aber nicht in dieses FHEMApp forum.

PS2: Das absence/presence ändert sich mit INTERVAL, das in deiner HauptFritzbox als attr INTERVAL gesetzt ist (also wie oft sich die FB readings aktualisieren.)
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/ConbeeII, FB, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack

draddy

hi, dank dir,

habe noch ein wenig rumprobiert, das Reading "lastReadout" ist "verlässlich" wenn die Box / Repeater nicht erreichbar ist.

habe daraus jetzt das userReading "isON" gebaut ...

isON {if (ReadingsVal($name,"lastReadout","") eq "500 Can't connect to 192.168.177.3:80 (No route to host)") {return 0} elsif (ReadingsVal($name,"lastReadout","") eq "Didn't get a session ID") {return 0} else {return 1}}
[code]
sieht nicht gaaanz so elegant aus, klappt aber ;)

nach ca 10 minuten gehts eben auf "Didn't get a session ID" - darum habe ich das lange 500er auch mit reingenommen, einzig "unschön" ist, das man hier natürlich die IP anpassen muss ... aber gut, macht man einmal pro Gerät.

gruss
Jens
OMV5@AsRock j3455 8GB RAM
FHEM@Docker, Shelly "starter pack" 4x PlugS, 2x Bulb Duo RGB, Shelly 2.5, Shelly Plus 1, DoorBird 2103V

Dr. Boris Neubert

Hallo Jens,

Du kannst statt eq den Match-Operator verwenden und die IP-Adresse durch Wildcards ersetzen. Dann wird es allgemeiner.

Viele Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

draddy

mächtiges bada bäng  ;D

danke Boris, der ist gut!

isON {if (ReadingsVal($name,"lastReadout","") =~ /values captured in/) {return 1} else {return 0}}

so kann ich auf den gleichbleibenden teil des positiven readings gehen, und unterstellen "wenn du keine werte bekommst, bist du nicht da" ;)

gruss
Jens
OMV5@AsRock j3455 8GB RAM
FHEM@Docker, Shelly "starter pack" 4x PlugS, 2x Bulb Duo RGB, Shelly 2.5, Shelly Plus 1, DoorBird 2103V