Hauptmenü

FHEM App - Manage your Home

Begonnen von Gisbert, 12 März 2021, 15:05:20

Vorheriges Thema - Nächstes Thema

binford6000

ZitatHast du bitte noch eine Idee?

Hallo Helmut,
bin zwar nicht Jamo aber ja, ich habe noch eine Idee:

Im Template mit "-" arbeiten:
"rightMenu": ["Aus:set Connected.wecker Aus","06-00:set Connected.wecker 06-00","06-15:set Connected.wecker 06-15","06-30:set Connected.wecker 06-30","06-45:set Connected.wecker 06-45","07-00:set Connected.wecker 07-00","07-15:set Connected.wecker 07-15","07-30:set Connected.wecker 07-30","07-45:set Connected.wecker 07-45","08-00:set Connected.wecker 08-00"]


Connected.wecker ist ein dummy und enthält die Weckzeiten mit "-":
defmod sebastian_wecker.d dummy
attr sebastian_wecker.d devStateIcon {ReadingsVal($name,'state','Aus') !~ /Aus/ ? ".*:ios-on-blue" : ".*:ios-off"}
attr sebastian_wecker.d readingList weckzeit snooze
attr sebastian_wecker.d setList snooze:on,off state:Aus,06-00,06-15,06-30,06-45,07-00,07-15,07-30,07-45,08-00
attr sebastian_wecker.d stateFormat weckzeit
attr sebastian_wecker.d userReadings weckzeit,\
snooze
attr sebastian_wecker.d webCmd state:snooze


Dazu gibts ein notify welches den "-" in ein ":" wandelt und es dann an eine Funktion übergibt:
(christine|sebastian)_wecker.d:.* {
my $zeit = $EVENT;
$zeit =~ s/-/:/;
setAlarm($NAME,$zeit);
}


In dem notify könntest du dann die Zeiten deinem DOIF übergeben

VG Sebastian

Helmi55

Hallo Sebastian,

Danke - das wird ja kompliziert  8)
Bis auf das notify verstehe ich eigentlich alles  ;D

Das ist mein DOIF
defmod di_BadHeizung DOIF ([[du_time]] and [du_HSH] eq "Anwesend") (set Bad_Heizung on-for-timer 9000) DOELSE
attr di_BadHeizung alias di_BadHeizung
attr di_BadHeizung do always
attr di_BadHeizung room Steuerung


Danke für deine Hilfe
Helmut
System1 fhem 6.1 auf RPi 4B mit 4GB, HMUSBConfig, DS9490R-1Wire, Busware USB 868, Pool-Solarsteuerung mit FHEM. System2 fhem 6.1 auf RPi 4B mit 4GB (Bullseye) mit Busware USB 868 und 433 und HMUARTLGW für Haussteuerung

https://www.flickr.com/photos/canonhelmi/

binford6000

Dann halt so im notify:
(christine|sebastian)_wecker.d:.* {
my $zeit = $EVENT;
$zeit =~ s/-/:/;
fhem("defmod di_BadHeizung DOIF ([$zeit] and [du_HSH] eq 'Anwesend') (set Bad_Heizung on-for-timer 9000) DOELSE");
}


Wenn ich jetzt bei mir den Wecker stelle wird dein DOIF auf die Weckzeit gestellt:
Internals:
   CFGFN     
   DEF        ([07:00] and [device] eq 'Anwesend') (set Bad_Heizung on-for-timer 9000) DOELSE
   FUUID      619a233a-f33f-0308-8170-0c970cd526c7cb18
   MODEL      FHEM
   NAME       di_BadHeizung
   NOTIFYDEV  global,device
   NR         9401
   NTFY_ORDER 50-di_BadHeizung
   STATE      initialized
   TYPE       DOIF
   VERSION    24905 2021-09-01 18:35:54
   READINGS:
     2021-11-21 11:58:08   cmd             0
     2021-11-21 11:58:08   mode            enabled
     2021-11-21 11:58:08   state           initialized
     2021-11-21 11:58:08   timer_01_c01    22.11.2021 07:00:00
   Regex:
     accu:
     collect:
     cond:
       device:
         0:
           &STATE     ^device$
   condition:
     0          ::DOIF_time_once($hash,0,$wday) and ::InternalDoIf($hash,'device','STATE') eq 'Anwesend'
   days:
   do:
     0:
       0          set Bad_Heizung on-for-timer 9000
     1:
       0         
   helper:
     DEVFILTER  ^global$|^device$
     NOTIFYDEV  global|device
     globalinit 1
     last_timer 1
     sleeptimer -1
   internals:
     all         device:STATE
   intervalfunc:
   localtime:
     0          1637560800
   realtime:
     0          07:00:00
   time:
     0          07:00:00
   timeCond:
     0          0
   timer:
     0          0
   timers:
     0           0
   triggertime:
     1637560800:
       localtime  1637560800
       hash:
   uiState:
   uiTable:
Attributes:
   alias      di_BadHeizung
   devStateIcon {ReadingsVal($name,"STATE","active") eq "active" ? ".*:ios-on-blue" : ".*:ios-NACK"}
   do         always
   icon       rc_SETUP


VG Sebastian

Jamo

Zitat von: Helmi55 am 21 November 2021, 11:12:20
Servus

Hast du bitte noch eine Idee?

ja, das Problem hatte ich damals auch, deswegen hatte ich ja auch mit . anstatt mit : gearbeitet (Sebastian dann eben mit -)

Ich habe dann, ähnlich wie Sebastian, über einen cmdalias den . durch : ersetzt, damit gehts dann auch.
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/ConbeeII, FB, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack

Helmi55

Wie geht das bitte mit dem cmdalias?
Für einen Laien wie mich - einfacher als notify?

Danke für eure Hilfe - ihr seid Spitze

Helmut
System1 fhem 6.1 auf RPi 4B mit 4GB, HMUSBConfig, DS9490R-1Wire, Busware USB 868, Pool-Solarsteuerung mit FHEM. System2 fhem 6.1 auf RPi 4B mit 4GB (Bullseye) mit Busware USB 868 und 433 und HMUARTLGW für Haussteuerung

https://www.flickr.com/photos/canonhelmi/

Jamo

#1265
Hallo Helmut,
Im dem fhemApp template also wieder den Punkt für das fhem cmd benutzen, also "05.00:set du_time state 05.00"

Dann ein cmdalias einrichten, das den . durch : ersetzt
define c_du_time cmdalias set du_time .* AS {$EVTPART2 =~ s/\./:/;fhem("set du_time $EVTPART2"); Log 3, "c_du_time EVENT:$EVENT EVTPART2=$EVTPART2"}

Das ist nicht die RAW definition, bei RAW import also oben in der commandozeile, musst Du die ; vedoppeln, also
define c_du_time cmdalias set du_time .* AS {$EVTPART2 =~ s/\./:/;;fhem("set du_time $EVTPART2");; Log 3, "c_du_time EVENT:$EVENT EVTPART2=$EVTPART2"}

cmdalias auch mal in der commandref nachlesen.
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/ConbeeII, FB, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack

Helmi55

#1266
Hallo und herzlichen Dank an ALLE

mit diese Zeichenfolge im cmdalias wäre ich ausgestiegen - Danke

So sieht mein template jetzt aus:
{
"name": "badtimer",
"author": "helmi55",
"date": "2021-11-19",
"status": {
   "bar": ["state:on:100:success","state:off:0:success"]
},
"main": [
{
"leftBtn": "mdi-power-off",
"leftClick": ["state::off"],
"midBtn": "mdi-alarm-multiple",
"midMenu": ["05.00:set du_time state 05.00", "05.30:set du_time state 05.30", "06.00:set du_time state 06.00", "06.30:set du_time state 06.30", "07.00:set du_time state 07.00", "17.00:set du_time state 17.00", "17.30:set du_time state 17.30", "18.00:set du_time state 18.00", "18.30:set du_time state 18.30"],
"rightBtn": "mdi-power-on",
"rightClick": ["state::on"]
}
],

"info":
{
"left1": ["state:on:an","state:off:aus","state::%s"],
"left2": [],
"mid1": ["Connected.temp.Readings.temperature.Value::%n.1°C:mdi-thermometer"],
"mid2": [],
"right1": ["Connected.startzeit.Readings.state.Value::%s"],
"right2": []
}
}


und so hab ich es in der Commandline eingegeben:

set du_time .* AS {$EVTPART2 =~ s/\./:/;fhem("set du_time $EVTPART2"); Log 3, "c_du_time EVENT:$EVENT EVTPART2=$EVTPART2"}


Danke für eure Unterstützung (jetzt hab ich die TOP Steuerung am Handy für meine bessere Hälfte - Haussteuerung, sie lässt sich noch nicht so einfach steuern ;D)
Gruß
Helmut
System1 fhem 6.1 auf RPi 4B mit 4GB, HMUSBConfig, DS9490R-1Wire, Busware USB 868, Pool-Solarsteuerung mit FHEM. System2 fhem 6.1 auf RPi 4B mit 4GB (Bullseye) mit Busware USB 868 und 433 und HMUARTLGW für Haussteuerung

https://www.flickr.com/photos/canonhelmi/

jemu75

Zitat von: Helmi55 am 22 November 2021, 14:46:42
Hallo und herzlichen Dank an ALLE

mit diese Zeichenfolge im cmdalias wäre ich ausgestiegen - Danke

So sieht mein template jetzt aus:
{
"name": "badtimer",
"author": "helmi55",
"date": "2021-11-19",
"status": {
   "bar": ["state:on:100:success","state:off:0:success"]
},
"main": [
{
"leftBtn": "mdi-power-off",
"leftClick": ["state::off"],
"midBtn": "mdi-alarm-multiple",
"midMenu": ["05.00:set du_time state 05.00", "05.30:set du_time state 05.30", "06.00:set du_time state 06.00", "06.30:set du_time state 06.30", "07.00:set du_time state 07.00", "17.00:set du_time state 17.00", "17.30:set du_time state 17.30", "18.00:set du_time state 18.00", "18.30:set du_time state 18.30"],
"rightBtn": "mdi-power-on",
"rightClick": ["state::on"]
}
],

"info":
{
"left1": ["state:on:an","state:off:aus","state::%s"],
"left2": [],
"mid1": ["Connected.temp.Readings.temperature.Value::%n.1°C:mdi-thermometer"],
"mid2": [],
"right1": ["Connected.startzeit.Readings.state.Value::%s"],
"right2": []
}
}


und so hab ich es in der Commandline eingegeben:

set du_time .* AS {$EVTPART2 =~ s/\./:/;fhem("set du_time $EVTPART2"); Log 3, "c_du_time EVENT:$EVENT EVTPART2=$EVTPART2"}


Danke für eure Unterstützung (jetzt hab ich die TOP Steuerung am Handy für meine bessere Hälfte - Haussteuerung, sie lässt sich noch nicht so einfach steuern ;D)
Gruß
Helmut

verrückte Sachen macht ihr hier...  :D
Und immer wieder schön zu lesen, wenn was klappt.

Helmi55

Sieht am iPhone 12pro Max sehr gut aus
System1 fhem 6.1 auf RPi 4B mit 4GB, HMUSBConfig, DS9490R-1Wire, Busware USB 868, Pool-Solarsteuerung mit FHEM. System2 fhem 6.1 auf RPi 4B mit 4GB (Bullseye) mit Busware USB 868 und 433 und HMUARTLGW für Haussteuerung

https://www.flickr.com/photos/canonhelmi/

Jamo

Hallo Jens,
ich bekomme immer noch den folgenden error im Logfile, und zwar nur wenn ich per vpn-on demand zur FritzBox (iPhone: iOS) unterwegs bin, und nur beim erstmaligen vpn Verbindungsaufbau, aber halt oft.
Irgendwie nervt mich das, weil ich dann fhemApp immer nochmal aufrufen, oder einen re-load triggern muss. Wir hatten das Anfang des Jahres schonmal diskutiert. Den csrf token auf 'none' zu setzen, ginge auch . . . ich benutze die gleiche FHEM Webinstanz auch für die normale HTML Webseite. Ultimativ wäre dann eine eigene FHEMWeb instanz mit attr csrftoken 'none' dann wohl die Lösung. Trotzdem gefragt, hast Du vielleicht noch eine grandiose Idee?
FHEMWEB WEB CSRF error:  ne csrf_148832911104462 . . .
defmod WEBphone FHEMWEB 8085 global
attr WEBphone CORS 1
attr WEBphone allowfrom MEI:NE:IP:AD1|MEI:NE:IP:AD2
attr WEBphone csrfToken 148832911104462
attr WEBphone longpoll websocket
...
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/ConbeeII, FB, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack

jemu75

Zitat von: Jamo am 11 Dezember 2021, 20:00:14
Hallo Jens,
ich bekomme immer noch den folgenden error im Logfile, und zwar nur wenn ich per vpn-on demand zur FritzBox (iPhone: iOS) unterwegs bin, und nur beim erstmaligen vpn Verbindungsaufbau, aber halt oft.
Irgendwie nervt mich das, weil ich dann fhemApp immer nochmal aufrufen, oder einen re-load triggern muss. Wir hatten das Anfang des Jahres schonmal diskutiert. Den csrf token auf 'none' zu setzen, ginge auch . . . ich benutze die gleiche FHEM Webinstanz auch für die normale HTML Webseite. Ultimativ wäre dann eine eigene FHEMWeb instanz mit attr csrftoken 'none' dann wohl die Lösung. Trotzdem gefragt, hast Du vielleicht noch eine grandiose Idee?
FHEMWEB WEB CSRF error:  ne csrf_148832911104462 . . .
defmod WEBphone FHEMWEB 8085 global
attr WEBphone CORS 1
attr WEBphone allowfrom MEI:NE:IP:AD1|MEI:NE:IP:AD2
attr WEBphone csrfToken 148832911104462
attr WEBphone longpoll websocket
...


Hallo Jamo,

ja, dafür sollte eine Lösung möglich sein. Ich würde den Ablauf gern nochmal genau erfragen.

Du hast in der Fhem Instanz, auf die Du über FHEMapp zugreifst, einen festen csrf Token hinterlegt
Du bist unterwegs mit deinem iPhone
Dann baust du eine VPN Verbindung auf
Dann startest du FHEMapp auf deinem iPhone
Dann bekommst du in FHEMapp den csrf Error
Dann machst du einen reload
Danach funktiert FHEMapp ohne Fehler

Habe ich das richtig verstanden?

Jamo

Hallo Jens, ja so ist der Ablauf, mit einem Unterschied: Die VPN Verbindung wird  'on-demand' aufgebaut, d.h. unter iOS kann man ein Profil hinterlegen. Beim zugriff auf die feste IP Adresse nach Hause über dyndns, wird dann die VPN-Verbindung initiiert.
d.H beim starten der fhemApp wird die VPN Verbindung aufgebaut, also ist die Reihenfolge so, und den Fehler sehe ich im Logfile vom fhem:

Du hast in der Fhem Instanz, auf die Du über FHEMapp zugreifst, einen festen csrf Token hinterlegt
Du bist unterwegs mit deinem iPhone
Dann startest du FHEMapp auf deinem iPhone, damit wird die VPN Verbindung aufgebaut
Dann bekommst du in FHEMWEB im Logfile den csrf Error.
Dann machst du einen reload
Danach funktiert FHEMapp ohne Fehler

Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/ConbeeII, FB, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack

jemu75

Wenn der Fehler nur beim ersten Mal auftritt und nach einem Browserreload (also wenn die VPN Verbindung dann schon steht) nicht mehr auftaucht, muss ich vermutlich warten, bis die VPN Verbindung steht.
Komm der Fehler eigentlich nur im Log von Fhem oder bekommst du auch einen Fehler in FHEMapp?
Wenn du mit dem iPhone im Heimnetz bis (also über WLAN) dann kommt der Fehler aber nicht - richtig?

Sorry für die vielen Fragen. Ich kann das leider nicht mit einem iPhone testen und versuche das Thema einzugrenzen.  ;)

Jamo

Hallo Jens,
Zu deinen Fragen:
- Ja, Du hast recht, es kommt auch ein Fehler in FHEMApp (wenn der csrf token nicht stimmt, wird die Anfrage ja auch nicht beantwortet), aber ich habe allerdings in letzter Zeit nicht mehr drauf geachtet was da steht, sondern immer weggedrückt
- Im WLAN Heimnetz habe ich sowieso keine Probleme, auch nicht in einem WLAN Fremdnetz (e.g Flughafen) mit vpn-on-demand, soweit ich mich erinnere (oder wenn dann erheblich seltener, ich bin seit Corona selten in fremden WLAN untewegs :-(  ).

Im Mobilfunknetz ist der Seitenaufbau aber auch sehr langsam. Ansonsten ist das vpn IPSec von der Fritzbox. Bei der normalen HTML Webseite hatte ich mit VPN diese Fehlermeldung im Log wegen dem csrftoken noch nie, deswegen auch meine Anfrage. Aber eventuell ist plain HTML auch schlanker und das geht dann irgendwie schneller über Mobilfunk/vpn.

Danke !
Nachdem ich Dir geschrieben hatte, habe ich es jetzt mit einer eigenen Webinstanz mit 'attr csrftoken none' gelöst. Ist jetzt also nicht wichtig, ich will Dir keine extra Mühe machen für etwas wo ich der einzige bin. Falls Du möchtest das ich nochmal was probiere, baue ich aber auch gerne nochmal um, ansonsten lassen wir das jetzt einfach so. Mit der Lösung einer extra Webinstanz kann ich gut leben.
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/ConbeeII, FB, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack

rageltus

Hi zusammen,

wollte mal fragen, ob jemand ein Template hat um bspw. die Farbtemperatur bei Dimmern HUE oder Tradfri bspw. zu steuern?
Bevor ich mir ein eigenes baue :)

Besten Dank !

Viele Grüße
Raspberry 3,HM-USB, SIGNALDuino 433, nanoCUL 868 SlowRF, Homematic, IKEA Tradfri Beleuchtung, FHEMApp