Neues Frontend: FhemNative Updates

Begonnen von Syrex-o, 16 Juli 2019, 14:50:24

Vorheriges Thema - Nächstes Thema

ch.eick

Zitat
Die Option zur Secure Websocket wird schon angeboten, funktioniert jedoch nicht (falls mir dabei jemand helfen kann, sehr sehr gern  ;D )
Ich habe nach SSL gesucht und das doch glatt überlesen, sorry dafür.

Ich habe in einem Raum einen Button angelegt und Konfiguriert.
Innerhalb des Rahmens erscheint die Meldung "Keine Verbindung zu Fhem. Bitte bearbeite deine IP-Einstellung."

Wenn ich nun in den Einstellungen die IP-Konfiguration prüfe und dann bestätige erscheint links unten eine grüne Meldung, dass die Verbindung hergestellt ist.

Muss ich bei dem wsPort device noch longpoll (oder longpull) setzen?

Internals:
   CONNECTS   1
   DEF        8080 global
   FD         35
   FUUID      5d821dda-f33f-81e9-20db-d76edcc041eb8e7d
   NAME       wsPort
   NOTIFYDEV  global
   NR         349
   NTFY_ORDER 50-wsPort
   PORT       8080
   STATE      Initialized
   TYPE       websocket
   global     global
   port       8080
   READINGS:
     2019-09-18 16:40:06   state           Initialized
   onclose:
     HASH(0x66320a0):
       arg:
         FUUID      5d821e21-f33f-81e9-0392-79bdd7f21d3b4210
         IODev      wsPort
         NAME       wsPort_json
         NOTIFYDEV 
         NR         350
         NTFY_ORDER 50-wsPort_json
         STATE      ???
         TYPE       websocket_json
         resource   /
         typeSubscriptions:
         websockets:
           HASH(0x6e4b8a0)
   onopen:
     HASH(0x66320a0):
       arg:
         FUUID      5d821e21-f33f-81e9-0392-79bdd7f21d3b4210
         IODev      wsPort
         NAME       wsPort_json
         NOTIFYDEV 
         NR         350
         NTFY_ORDER 50-wsPort_json
         STATE      ???
         TYPE       websocket_json
         resource   /
         typeSubscriptions:
         websockets:
           HASH(0x6e4b8a0)
Attributes:
   verbose    0



Internals:
   FUUID      5d821e21-f33f-81e9-0392-79bdd7f21d3b4210
   IODev      wsPort
   NAME       wsPort_json
   NOTIFYDEV 
   NR         350
   NTFY_ORDER 50-wsPort_json
   STATE      ???
   TYPE       websocket_json
   resource   /
   typeSubscriptions:
   websockets:
     HASH(0x6e4b8a0)
Attributes:
   IODev      wsPort
   verbose    0


Viele Grüße und danke für die Starthilfe
     Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

ch.eick

Als erstes Device wollte ich einen shelly2.5 ansteuern:

Device Name: shelly01
Reading Name: relay_0
Get On: on
Get Off: off
Set on: set shelly01 on 0
Set off: set shelly01 off 0

Wäre das so richtig?


Internals:
   CHANGED   
   DEF        192.168.178.50
   DURATION   0
   FUUID      5d344c4e-f33f-81e9-2f16-85e5f78b2c9a8ac8
   INTERVAL   60
   NAME       shelly01
   NR         308
   STATE     
<TABLE>

<TR>
  <TD VALIGN="TOP" ALIGN="RIGHT" WIDTH="100">
    Status: OK<br>
  </TD>

  <TD VALIGN="TOP" ALIGN="RIGHT" WIDTH="70">
    Relais 0: off 0 Watt<br>
    Relais 1: off 0 Watt<br>
  </TD>
</TR>

</TABLE>

   TCPIP      192.168.178.50
   TYPE       Shelly
   READINGS:
     2019-07-21 13:39:22   cloud           disabled
     2019-07-21 13:54:44   config          1= [channel 0]
     2019-07-21 13:48:24   energy_0        0
     2019-07-21 13:48:24   energy_1        0
     2019-08-28 13:54:00   firmware        v1.5.3
     2019-09-18 16:39:47   network         <html>connected to <a href="http://192.168.178.50">192.168.178.50</a></html>
     2019-09-15 12:03:47   overpower_0     0
     2019-08-02 10:38:57   overpower_1     0
     2019-07-21 13:48:24   power_0         0
     2019-07-21 13:48:24   power_1         0
     2019-09-15 12:03:47   relay_0         off
     2019-08-02 10:38:57   relay_1         off
     2019-09-18 16:40:36   state           OK
Attributes:
   alias      LWP_Signale
   group      PV Eigenverbrauch-Steuerung
   icon       taster_ch_1
   mode       relay
   model      shelly2.5
   room       Heizung->System,Strom->Photovoltaik
   sortby     02
   stateFormat {sprintf("
<TABLE>

<TR>
  <TD VALIGN=\"TOP\" ALIGN=\"RIGHT\" WIDTH=\"100\">
    Status: %s<br>
  </TD>

  <TD VALIGN=\"TOP\" ALIGN=\"RIGHT\" WIDTH=\"70\">
    Relais 0: %s %s Watt<br>
    Relais 1: %s %s Watt<br>
  </TD>
</TR>

</TABLE>
" ,
ReadingsVal($name,"state","none") ,
ReadingsVal($name,"relay_0",0),ReadingsVal($name,"power_0",0),
ReadingsVal($name,"relay_1",0),ReadingsVal($name,"power_1",0)
)}
   webCmd
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

Syrex-o

So, also als erstes:
Welche Websocket benutzt du.
Variante 1 braucht kein longpoll aber zusätzliche Module.
Variante 2 mit longpoll und keinen Bibliotheken.

Wenn in FhemNative ein Gerät erstellt wird, zeigt die letzte Seite den Konfigurationstest.
Beides auf grün heißt device gefunden und Reading auch. Ist das bei dir so ?

Zu deinem Shelly:
Das device ist natürlich shelly01
Das Reading ist auch richtig.
Beim Senden von Befehlen wird das Gerät nicht benötigt. Ist ja das gleiche.
Da du kein setReading brauchst, ist on und Off also nur on und Off.

Hoffe das hilft.

Grüße

ch.eick

#123
Hallo.

Ich habe genau diese Anleitung befolgt:

External Websocket installation

    sudo cpan App::cpanminus
    sudo cpanm Protocol::WebSocket
    sudo cpanm JSON
    copy content from websocket folder to opt/fhem/FHEM
    define wsPort websocket 8080 global
    define wsPort_json websocket_json

Danach ein shutdown restart ohne weitere Fehlermeldungen im Fhem Log.

Dann wurde die Win App gestartet und die IP-Adresse eingestellt.

Mit "Räume generieren" erschienen anschließend die Räume in der App.
Den Edit Modus kann ich nun auch aktivieren.

Dann habe ich den Button eingefügt, der nach wie vor mit der Fehlermeldung in einem Raum abgebildet wird.
Es laufen kurz einige blaue Punkte in dem Button Rahmen bevor die Meldung kommt.
Im Fhem Log erscheinen in diesem Moment keine Meldungen.

Zitat
Wenn in FhemNative ein Gerät erstellt wird, zeigt die letzte Seite den Konfigurationstest.
Beides auf grün heißt device gefunden und Reading auch. Ist das bei dir so ?
Ich erinnere mich, dass ich zwei grüne Balken zum schluss der Einrichtung gesehen haben.


Bei dem Shelly ist die Besonderheit, dass nach dem devicenamen ein "on" kommen muss, gefolgt von der relay Nummer.
Die Shelly2.5 haben zwei Kanäle 0/1

set shelly01 on 0


Im Anhang sind Bilder des Button
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

Syrex-o

Hey,

Die Konfiguration sieht ganz gut aus. Im edit Mode kannst du übrigens doppelt auf alles klicken und alles bearbeiten.

Wenn deine IP und das Gerät stimmen, dann sollte beim Start eine connected Nachricht kommen. Ist das so ?

Der on Befehl sollte jedoch nicht das device enthalten.

Ich schaue mir den Button nachher Mal an. Eventuell ein Bug.

Beste Grüße

ch.eick

Beim Set on habe ich jetzt das "set shelly01" raus genommen.
Es steht nur noch "on 0" im Feld. Die 0 gibt das Relay an, dass geschaltet werden soll.

Das hat jedoch nichts an der Fehlermeldung geändert, die auf den Bildern zu sehen ist.

Gesendet von meinem SM-G930F mit Tapatalk

RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

mkraus81

wie sieht denn deine IP-Einstellung in der App aus?
Zeig doch mal...

Bei Websocket muss der Port auf 8080 stehen
zeig mal mal ein Screenshot

mich hatte am Anfang Schritt 4 verwirrt "copy content from websocket folder to opt/fhem/FHEM"  hatte ein wenig gebraucht bis ich verstanden hatte das es um den  Inhalt des Ordners "https://github.com/Syrex-o/FhemNative/tree/master/00_Websocket" ging


ch.eick

Moin.
Die Ip stimmt und der Port ist 8080.
Das Protokoll steht auf websocket.

Die Räume wurden mit dieser Einstellung ja auch bereits übernommen.

Momentan komme ich da noch nicht weiter.

Ansonsten sieht das ganze Interface toll aus und ist genau das was ich noch gesucht hatte. Auch die unterstützten Platformen sind vielfältig.
Eventuell wäre Linux z.B. als .jar noch  toll, aber das ist so erst mal zu verschmerzen.

Danke für die tolle Arbeit.

Jetzt muss für meinen Fall nur der connect des Buttons noch klappen.

Gruß Christian 

Gesendet von meinem SM-G930F mit Tapatalk

RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

mkraus81

hast es mal mit was anderem als Shelly versucht?

ch.eick

Zitat von: mkraus81 am 20 September 2019, 08:34:11
hast es mal mit was anderem als Shelly versucht?

Bisher noch nicht, jedoch wurde beim Einrichtungstest zwei mal grün angezeigt. Ich hatte bei einem Fehlerhaften "Set" eine Meldung im Log erwartet, jedoch denke ich kommt es momentan noch nicht so weit.
Syrex-o wollte sich den Button nochmal genauer ansehen, ob es da eventuell schon ein Problem gibt.
Sobald ich Zeit habe werde ich nochmal etwas anderes testen. Der Button erschien mir jedoch für den Anfang das simpelste.

Viele Grüße
     Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

mkraus81

also bei mir funktioniert "Button" deshalb die Frage
versuch mal ein anderes Gerät... einfaches Gerät was man mit set ON und OFF schalten... dann kannst sehen ob es überhaupt geht oder es z.B. an shelly liegt

Syrex-o

Zitat von: ch.eick am 20 September 2019, 11:29:11
Bisher noch nicht, jedoch wurde beim Einrichtungstest zwei mal grün angezeigt. Ich hatte bei einem Fehlerhaften "Set" eine Meldung im Log erwartet, jedoch denke ich kommt es momentan noch nicht so weit.
Syrex-o wollte sich den Button nochmal genauer ansehen, ob es da eventuell schon ein Problem gibt.
Sobald ich Zeit habe werde ich nochmal etwas anderes testen. Der Button erschien mir jedoch für den Anfang das simpelste.

Viele Grüße
     Christian

Also der Button funktioniert.
Er hat eine spezielle Logik für 2 Szenarien:
1. Es ist nur eine Verbindung zu FHEM aktiv --> senden von Befehlen über sendCommand
2. Fhem Gerät und Reading gefunden --> Befehle an das Device können gesendet werden.

Deine Fehlermeldung zeigt aber, dass keine aktive Verbindung zu FHEM existiert.

Bitte überprüfe das zuerst. Exe neu starten. Die Verbindung sollte dann sofort hergestellt werden (signalisiert über "Connected to Fhem" und "Fetched all devices")

Grüße

Syrex-o

Update: FhemNative 2.0.1

Hey zusammen,

FhemNative 2.0.1 ist für alle Geräte verfügbar.
Das Update sollte per Reminder in der App erscheinen.

Folgendes hat sich getan:

  • Settings Import ist behoben
  • Ein paar neue Logiken für default Einstellungen
  • Responsive Resize ist jetzt defaultmäßig auf ON (bitte daran denken, dass ein "Cross-Device" Austausch der Einstellungen nur dannperfekt funktioniert, wenn responsive resize an ist)

Aktuell arbeite ich an dem Wunsch für "Auto-Device-Import"

Ich freue mich auf euer Feedback.

Beste Grüße

ch.eick

#133
Zitat von: Syrex-o am 20 September 2019, 12:30:07
Deine Fehlermeldung zeigt aber, dass keine aktive Verbindung zu FHEM existiert.

Bitte überprüfe das zuerst. Exe neu starten. Die Verbindung sollte dann sofort hergestellt werden (signalisiert über "Connected to Fhem" und "Fetched all devices")

Hallo Syrex-o

ich habe nun einen Test zum Start der WinApp gemacht.

1) Das device wsPort hat verbose 5
2) die WinApp FhemNative wird gestartet
3) Links unten im Fenster wird Verbindung zu Fhem hergestellt angezeigt
3) Im Fhem Log sehe ich eine Vielzahl Meldungen


2019.09.23 12:18:46 4: Connection accepted from wsPort_192.168.178.201_58993
2019.09.23 12:18:46 5: GET / HTTP/1.1
Host: 192.168.178.12:8080
Connection: Upgrade
Pragma: no-cache
Cache-Control: no-cache
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) FhemNative/2.0.0 Chrome/76.0.3809.139 Electron/6.0.7 Saf
2019.09.23 12:18:46 5: ari/537.36
Upgrade: websocket
Origin: file://
Sec-WebSocket-Version: 13
Accept-Encoding: gzip, deflate
Accept-Language: de
Sec-WebSocket-Key: 9qZ65Y4jhO2hETEaUoZUNQ==
Sec-WebSocket-Extensions: permessage-deflate; client_max_window_bits
Sec-WebSocke
2019.09.23 12:18:46 5: t-Protocol: json


2019.09.23 12:18:46 5: HTTP/1.1 101 WebSocket Protocol Handshake
Upgrade: WebSocket
Connection: Upgrade
Sec-WebSocket-Accept: BSAk97EIGX5RSZUkNblFB64sdcs=


2019.09.23 12:18:46 5: websocket subscribeTextMessage CODE(0x1160a30)
2019.09.23 12:18:46 4: websocket: protocol chosen 'json'
2019.09.23 12:18:46 5: {
  'type' => 'ping'
}

2019.09.23 12:18:46 5: ▒▒▒▒B ▒▒6Yö`▒▒-M޲,D▒▒`PҪ.Oҷ`▒▒!O޾#N▒▒xߺ1T▒▒`A▒`ݦ.Lή
2019.09.23 12:18:46 5: websocket text {"type":"command","payload":{"command":"list","arg":null}}
2019.09.23 12:18:46 5: websocket jsonmessage: {
  'payload' => {
                 'arg' => undef,
                 'command' => 'list'
               },
  'type' => 'command'
}


Nun kommen riesige Mengen von json Meldungen

Ein httpmod device mit Verbindung zur vallox_cloud (Meine Kontrollierte Wohnraum Lüftung) bricht dann zwischendurch, wegen zu hoher Datenmenge ab.

2019.09.23 12:18:48 1: ERROR sendMessage [Payload is too big. Send shorter messages or increase max_payload_size at /usr/local/share/perl/5.24.1/Protocol/WebSocket/Frame.pm line 253.
]


Dann folgen wieder weitere json Meldungen, die fehlerfrei zu sein scheinen

Und zum Schluss wird die Verbindung geschlossen.

2019.09.23 12:18:56 5: {
  'type' => 'close'
}



Nach dem Mittag kommt hier dann noch mehr :-)
Okay, es kommt nix mehr, aber ich mache dann mal den client update.

Gruß
   Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

Syrex-o

Hi Christian,

Jetzt macht alles mehr Sinn. Scheinbar hast du viele Fhem-Geräte?
Dein Log verrät dir schon die Lösung:
Zitat2019.09.23 12:18:48 1: ERROR sendMessage [Payload is too big. Send shorter messages or increase max_payload_size at /usr/local/share/perl/5.24.1/Protocol/WebSocket/Frame.pm line 253.
]

Erhöhe einfach die max_payload_size

Beste Grüße