Hauptmenü

FHEM App - Manage your Home

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

Vorheriges Thema - Nächstes Thema

jemu75

Zitat von: JoWiemann am 17 März 2021, 11:48:39
Gibt es die Möglichkeit bei "status" -> "line" aus z.B. dim93% die 93 durch ein RegEx herauszufiltern?

Das ist bereits in Arbeit. Du kannst schon mal folgende "Ersetzungen" nutzen.
%s = gibt den Wert des Readings zurück
%n = gibt den ersten im Reading enthaltenen Zahlenwert zurück
%n.2 = gibt den ersten im Reading enthaltenen Zahlenwert mit den gewünschten Nachkommastellen zurück
%t = wandelt Datumswerte in ein nationales Format (TT.MM.JJJJ hh:mm:ss) um

Dein o.g. Beispiel ist noch ein Bug bei mir gewesen, den ich eben entfernt habe. Ist also mit dem nächsten Release gelöst.:)

Ps.: wie schon geschrieben, baue ich gerade noch einiges um und gehe deshalb mit dem nächsten Release auf  Version 2. In dem Zusammenhang wird der Parameter "line" dann durch "bar" ersetzt. Ich schreibe gerade parallel an der Dokumentation der neuen Funktionen und stelle die neue Version dann ein. Bitte noch um ein klein wenig Geduld.  ;)

JoWiemann

Zitat von: jemu75 am 17 März 2021, 13:07:41
%n = gibt den ersten im Reading enthaltenen Zahlenwert zurück

Hm ich hole den Wert aus dem Reading "state". Bei %s erhalte ich dim12%. Leider gibt %n nicht die erwartete 12 zurück.

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

jemu75

Zitat von: JoWiemann am 17 März 2021, 14:00:32
Hm ich hole den Wert aus dem Reading "state". Bei %s erhalte ich dim12%. Leider gibt %n nicht die erwartete 12 zurück.

Grüße Jörg

Ja, das ist noch der besagte Bug.  8)

eki

#63
Zitat von: rudolfkoenig am 15 März 2021, 15:44:18
FHEMWEB ist kein voll konfigurierbares Webserver, sollte aber meiner Ansicht nach fuer sowas wie FHEM App reichen.
Zu 1):  ich habe FHEMWEB erweitert, dass beim Fehlen eines Dateinamens, und spezifizieren eines Unterverzeichnisses nach index.html gesucht wird. Ist experimentell, und wird bei unloesbaren Problemen entfernt.
Zu 2): was genau sollte deiner Ansicht nach FHEMWEB zurueckliefern? Was liefern andere Werbserver bei diesem URL zurueck?

Ich habe immer noch Probleme damit, dass index.html und die .js Dateien mit absoluten Pfaden arbeiten. Ich behaupte, dass ist auch fuer andere Webserver ein Problem, wenn man fhemApp nicht exklusiv betreiben will. Ich habe zum Testen ein redirectTo FHEMWEB Attribut eingefuehrt, wenn ich das auf fhemapp setze, dann kriege ich das angehaengte Bild und keine (JavaScript) Fehler. Die Seite ist aber ziemlich "tot", weiss nicht, ob das so gedacht ist.

Hallo Rudi, folgende Änderung in 01_FHEMWEB.pm

   
$file =~ s/[?#].*//; # Remove timestamp of CSS reloader
$file = "index.html" if(defined($file) && $file eq ""); # 119470


führt dazu, dass der GET Befehl zum Abholgen von Daten aus den Logs über HTTP nicht mehr funktioniert (da kommt jetzt immer Fehler 404 not found als Antwort). Das ist insofern schlecht, als das der zentrale Mechanismus im FTUI ist, mit dem die Daten für die Charts aus FHEM ans FTUI Frontend geholt werden. Kannst Du das bitte korrigieren, sonst gibt es hier jede Menge Mecker weil die Charts nicht mehr funktionieren (ein paar gab es schon).

rudolfkoenig

ZitatDas ist insofern schlecht, als das der zentrale Mechanismus im FTUI ist, mit dem die Daten für die Charts aus FHEM ans FTUI Frontend geholt werden.
Kannst Du mir dafuer ein komplettes URL nennen?

Logdateien sollte man nicht direkt holen, sondern per FileLog get. Falls man keine Spalten angibt, dann kriegt man die Daten "roh", das sollte nicht langsamer sein, als direktes abholen, und man kann einen Zeitintervall bestimmen.

eki

ZitatLogdateien sollte man nicht direkt holen, sondern per FileLog get. Falls man keine Spalten angibt, dann kriegt man die Daten "roh", das sollte nicht langsamer sein, als direktes abholen, und man kann einen Zeitintervall bestimmen.

Das ist ja genau das, was ich im chart schon seit Jahren mache ;).

http://localhost:8083/fhem/fhem/?cmd=get+FileLog_Gasverbrauch+CURRENT+-+2021-02-15_00%3A00%3A00+2021-03-18_00%3A00%3A00+4%3AverbrVortagKubik.*&XHR=1&fwcsrf=csrf_877126584214589&_=1615993057301

jemu75

#66
Zitat von: eki am 17 März 2021, 15:59:35
Das ist ja genau das, was ich im chart schon seit Jahren mache ;).

http://localhost:8083/fhem/fhem/?cmd=get+FileLog_Gasverbrauch+CURRENT+-+2021-02-15_00%3A00%3A00+2021-03-18_00%3A00%3A00+4%3AverbrVortagKubik.*&XHR=1&fwcsrf=csrf_877126584214589&_=1615993057301

Ich hole in der FHEMApp ja auch Logdaten für die Charts. Bei mir sieht der Request z.B. so aus
http://fhem:8083/fhem?fwcsrf=csrf_127775458371185&cmd=get%20chn_sen.hm.og.ki1_Climate_FileLog%20-%20-%202021-03-10%202021-03-18%204%3Ahumidity&XHR=1
Das funktioniert auch ohne Probleme. Aber was hängt eigentlich bei deiner URL hinten nach dem csrf-Token für ein Parameter?

rudolfkoenig

ZitatDas ist ja genau das, was ich im chart schon seit Jahren mache ;).
Haette ich ja denken koennen, man kann ja nicht ohne Weiteres direkt auf log zugreifen.
Habe jetzt die automatische index.html Ergaenzung weggenommen, da mir (ohne grossen Umbau) nichts eingefallen ist, um es kompatibel zu gestalten.
=> fhemapp muss baW mit http://fhemhost:8083/fhem/fhemapp/index.html aufgerufen werden.

jemu75

Zitat von: rudolfkoenig am 17 März 2021, 17:18:07
=> fhemapp muss baW mit http://fhemhost:8083/fhem/fhemapp/index.html aufgerufen werden.
Ich denke, damit kann man leben. ;) Trotzdem vielen Dank für den Test!

Jamo

HAMMER! Gerade installiert, und ich bin begeistert! Meine Fragen:

1) Bei den appOptions, muss immer genau 1 Leerzeichen zwischen z.B. "home": und "true" sein, ansonsten taucht das device nicht unter Home auf. Ist das so gewollt?
Also "home": "true", funktioniert, "home":  "true", funktioniert nicht.

2) Bei dem sonos template: Wie bekomme ich das hin, das ich mit dem template das GroupVolume steuern kann? Ich habe das template für den master eingerichtet, aber damit wird nur der Master lauter/leiser, aber ich möchte die ganze Gruppe lauter / leiser machen. Über 'states'funktioniert es nicht:
{ "template": "sonos",
  "home": "true",
  "dashboard": "true",
  "states": ["GroupVolume"] }

Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/Conbee III, FB7690, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack, Sonos, ESPresence

jemu75

#70
neues Release v2.0.0
Nachdem es schon viele Anpassungswünsche zu den bisherigen Templates gab, stehen ab Version 2 nun komplett frei konfigurierbare Templates zur Verfügung.  Welche Möglichkeiten die Standard Templates bieten habe ich  hier dokumentiert. Die Version 2 ist nicht mehr mit Version 1.x kompatibel, da in appOptions der Parameter states durch den neuen Parameter setup ersetzt wurde.

Beispielkonfigurationen findet ihr hier

ACHTUNG: sichert bitte eure Datei config.json aus dem Ordner ../fhemapp/cfg/ bevor ihr das neue Release auf euren Web-Server kopiert und fügt die danach dort wieder ein. Ansonsten geht eure Grundkonfiguration verloren.

Github der Link: https://github.com/jemu75/fhemApp

jemu75

Zitat von: JoWiemann am 17 März 2021, 14:00:32
Hm ich hole den Wert aus dem Reading "state". Bei %s erhalte ich dim12%. Leider gibt %n nicht die erwartete 12 zurück.
Der Bug ist mit der aktuellen Version 2, die ich eben auf Github veröffentlicht habe, behoben.  :)

jemu75

Zitat von: Jamo am 17 März 2021, 23:23:22
1) Bei den appOptions, muss immer genau 1 Leerzeichen zwischen z.B. "home": und "true" sein, ansonsten taucht das device nicht unter Home auf. Ist das so gewollt?
Ja, ich nutze hier direkt das JSON-Format ohne dieses explizit noch mal zu validieren. Eine Validierung könnte ich aber sicher mal einbauen, wenn sich etwas Zeit findet ;) Ansonsten ist das JSON-Format hier gut beschrieben https://de.wikipedia.org/wiki/JavaScript_Object_Notation#Datenstruktur_und_Formatdefinition

Zitat von: Jamo am 17 März 2021, 23:23:22
2) Bei dem sonos template: Wie bekomme ich das hin, das ich mit dem template das GroupVolume steuern kann? Ich habe das template für den master eingerichtet, aber damit wird nur der Master lauter/leiser, aber ich möchte die ganze Gruppe lauter / leiser machen. Über 'states'funktioniert es nicht:
Aktuell geht das noch nicht - war mir aber bei meinen eigenen SONOS Geräten auch schon aufgefallen ;) Ich nehme das gern als Feature fürs das kommende Release mit auf.
Umsetzen würde ich das wie folgt: Wenn sich der Player in einer Gruppe befindet, dann wird GroupVolume geregelt, ansonsten Volume. Hoffen das passt so? :)

jemu75

Zitat von: schwatter am 16 März 2021, 19:39:47
Ein Vorschlag für das Template Dimmer. Den Status in der Mitte nutzen, um auch An/Aus zu setzen.
Das Dimmer Template, das ich mit Version 2 ausliefere ist wie folgt definiert. Bei langem Tastendruck schaltest du damit ein bzw. aus :)

{
    "name": "dimmer",
    "status": {
      "bar": ["pct::%n:success"],
      "error": []
    },
    "main": [
      {
        "leftIcon": "mdi-minus",
        "leftClick": ["pct:100:pct 75","pct:75:pct 50","pct:50:pct 25","pct:25:off"],
        "leftLong": ["state::off"],
        "text": ["pct:1:an:","pct::aus"],
        "rightIcon": "mdi-plus",
        "rightClick": ["pct:75:on","pct:50:pct 75","pct:25:pct 50","pct:0:pct 25"],
        "rightLong": ["state::on"]
      }
    ],
    "info": {
      "left1": ["pct:1::mdi-lightbulb","pct:::mdi-lightbulb-off"],
      "left2": ["pct::%s%"]
    }
}


Zitat von: schwatter am 16 März 2021, 19:39:47
Hier ein list von HMIP Thermostat per HMCCUDEV...
...Homematic old per CUL_HM angebunden wäre es wohl das Beste, sich die Climate Kanäle zu schnappen.
Ich nutze die Homematic Wandthermostate in Verbindung mit einer Fußbodenheizung. Ich nutze den Kanal "Climate" zur Steuerung. Aus dem Thermostat selbst hole ich den Verbindungsstatus und Batteriezustand. Und von meinem Schaltaktor für die Fußbodenheizung greife ich den "Status" ab. Meine Konfiguration in Version 2 sieht wie folgt aus - und da geht bestimmt noch mehr...  ;D

{
    "name": "thermostat",
    "status": {
      "bar": ["Connected.valve.Readings.pct.Value::%n:success"],
      "error": ["Connected.receiver.Readings.Activity.Value:^(?!alive):100:error:keine Verbindung"]
    },
    "main": [
      {
        "leftIcon": "mdi-minus",
        "leftClick": ["desired-temp:17.5:desired-temp %i-0.5","desired-temp::"],
        "leftLong": ["R-nightTemp::desired-temp %n.1"],
        "text": ["desired-temp::%n.1°C"],
        "rightIcon": "mdi-plus",
        "rightClick": ["desired-temp:25:","desired-temp::desired-temp %i0.5"],
        "rightLong": ["R-dayTemp::desired-temp %n.1"]
      }
    ],
    "info": {
      "left1": ["tempState:day::mdi-weather-sunny","tempState:night::mdi-weather-night"],
      "left2": ["controlMode:auto::mdi-clock-time-four-outline"],
      "mid1": ["measured-temp::%n.1°C:mdi-thermometer"],
      "mid2": ["humidity::%n%:mdi-water"],
      "right1": ["Connected.receiver.Readings.battery.Value:ok::mdi-battery","Connected.receiver.Readings.battery.Value:::mdi-battery-10"],
      "right2": ["Connected.receiver.Readings.Activity.Value:alive::mdi-wifi","Connected.receiver.Readings.Activity.Value:::mdi-wifi-off"]
    }
}

JoWiemann

Zitat von: jemu75 am 18 März 2021, 12:22:11
Der Bug ist mit der aktuellen Version 2, die ich eben auf Github veröffentlicht habe, behoben.  :)

Stimmt. Und hier der angepasste FS20 Dimmer

    {
      "name": "FS20_Dimmer",
      "status": {
         "bar": ["state:on:100:success","state:off:0:success","state::%n:success"],
         "error": []
       },
       "main": [
         {
           "leftIcon": "mdi-minus",
           "leftClick": ["state:on:dim93%","state:dim100%:dim93%","state:dim93%:dim87%","state:dim87%:dim81%","state:dim81%:dim75%","state:dim75%:dim68%","state:dim68%:dim62%","state:dim62%:dim56%","state:dim56%:dim50%","state:dim50%:dim43%","state:dim43%:dim37%","state:dim37%:dim31%","state:dim31%:dim25%","state:dim25%:dim18%","state:dim18%:dim12%","state:dim12%:dim06%","state:dim06%:off"],
           "leftLong": ["state::off"],
           "text": ["state:on:an:","state:off:aus"],
           "rightIcon": "mdi-plus",
           "rightClick": ["state:dim93%:on","state:dim93%:dim100%","state:dim87%:dim93%","state:dim81%:dim87%","state:dim75%:dim81%","state:dim68%:dim75%","state:dim62%:dim68%","state:dim56%:dim62%","state:dim50%:dim56%","state:dim43%:dim50%","state:dim37%:dim43%","state:dim31%:dim37%","state:dim25%:dim31%","state:dim18%:dim25%","state:dim12%:dim18%","state:dim06%:dim12%","state:off:dim06%"],
           "rightLong": ["state::on"]
         }
       ],
       "info": {
         "left1": ["state:on::mdi-lightbulb","state:off::mdi-lightbulb-off"],
         "left2": ["state:on:", "state:off:", "state::%n%"]
       }
    }


Jetzt eine Frage. Der Dim Befehl wird sehr oft mit %-6 verkleinert oder vergrößert. Leider funktioniert i[Wert] im Typo Kontext nicht.

Also: state::dimi[-6] wird nicht aufgelöst.

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM