SmartVISU 3.0 -> 3.01

Begonnen von Funsailor, 04 Februar 2021, 01:16:07

Vorheriges Thema - Nächstes Thema

Funsailor

Da mich seit einiger Zeit ein kleines orangefarbenes Dreieck auf ein Update von SmartVISU hingewiesen hat, habe ich das mal durchgezogen.
Den Master Branch von Martin https://github.com/Martin-Gleiss/smartvisu geholt, entpackt und "installiert" .

Danach meine Wohnung von der 2.92 er Version in das "pages-Verzeichnis kopiert, ebenso die Config.ini.

Den Kalender musste ich diesmal nicht anpassen (siehe https://forum.fhem.de/index.php/topic,112203.0.html), allerdings funktioniert die Telefonliste wieder nicht. Da habe ich dann wieder die "alte" fritz!box_TR-064.php Datei genommen,damit gibt es keine robleme.

Nach ein wenig Fleißarbeit (alle basic.switch in basic.stateswitch, alle basic.float und basic.value in basic.print  geändert) lief dann fast alles wieder rund. Nur das Homematic hmtc widget bekomme ich nicht hin...
Ich habe die widget_homematic.html so angepasst, das der die Kiste beim "betreten" des Raumes mit einem hmtc nicht mehr abstürzt. Allerdings funktioniert das nicht wie gewünscht. Die basic.stateswitch schalten den Status nicht um, die Voreingestellten Temperaturen werden nicht übergeben sondern stehe als Text hinter den Symbolen. Mir ist das jetzt zu spät, meine bisherigen Ergebnisse könnt Ihr euch mal ansehen, vielleicht sieht einer von euch den Wurm bzw. die Würmer.
Die Übergabe der Parameter funktioniert so weit, ich kann die 3er Version von der 292er Seite steuern, aber nicht umgekehrt.
- Asus PN 41- mapleCul V1.24.01 - FHEMDuino - FHEM 6.2 - HUE Bridge - ESPEasy Bridge -  Milight HUB - smartVISU 3.40 -

wvhn

Meine ausführliche Antwort hierzu hat mir die Forensoftware gerade gelöscht, weil ich beim Zurückschalten aus der Vorschau wohl vergessen habe, die Hauptstadt von Frankreich zu benennen. Tolles Feature  >:(

Deshalb nur kurz: Wahrscheinlich enthält das Widget noch Aufrufe von veralteten Widgets, die in v3.0 gelöscht wurden. Oder aber es nutzt das veraltete Handling von Widgets, das ebenfalls in v3.0 gelöscht wurde.

Letzteres ist definitiv der Fall, wenn Du beim Aufruf des Widgets in v2.9 schon die Meldung "Plain old smartVISU widgets are deprecated. Use a jQuery widget based on $.sv.widget instead" in der Entwicklerkonsole des Browsers bekommen hast.

In beiden Fällen muss das Widget auf den aktuellen, zu v3.0 kompatiblen Stand gebracht werden.

Gruß
Wolfram

Funsailor

#2
Hallo Wolfram,
schön auch hier von dir zu hören ;) .
Ich bin gerade am htmc widget dran, habe es so weit schon am laufen. Allerdings funktioniert noch nicht alles wie ich es mir vorstelle.

Das Widget habe ich schon erweitert, hier der Aufruf:



{{homematic.hmtc('KelleFlur_Heizung','KellerFlur','KellerFlur_Heizung.Temp.sw','KellerFlur_Heizung.set','KellerFlur_Heizung.controlmode','KellerFlur_Heizung.daytemp' ,'KellerFlur_Heizung.nighttemp' ,'' ,'KellerFlur_Heizung._battery','KellerFlur_Ventil._battery','KellerFlur_Heizung.state' ,'',''   ,'KellerFlur_Heizung.valve','KellerFlur_Heizung.humidity') }}
Ich übermittle zusätzlich die eingestellte Tag - und Nachttemperatur sowie den Zustand der Ventilbatterie.
Im Moment versuche ich den stateswitch zu überreden, die Tages/Nachttemperatur zu übertragen (Im altem Widget war da Fix 17 und 21 Grad vorgegeben)



Fix:         {{ basic.stateswitch(id~'night', gad_set, 'icon', ['21',17'],    icon0~'scene_night.svg') }}
Versuch:  {{ basic.stateswitch(id~'night', gad_set, 'icon', ['day','night'],    icon0~'scene_night.svg') }}

Ist es hier:"..., 'icon', ['21',17'], " überhaupt möglich, eine Variable zu übergeben? Ich denke eher nicht.

Die Fixe Version funktioniert, das wird im FHEM.Monitor angezeigt:
Zitat2021-02-05 11:03:36.921 CUL_HM UG_FlurThermostat_Climate set_desired-temp 21

Ich habe auchschon mir den Variablen "[gad_daytemp, gad_nighttemp]" versucht (mit und ohne ' '), geht auch nicht.

Ist aber nicht so toll, ich habe im Kellervorraum ander Tag/Nachtwerte wie im OG....  :(

Im Anhang man ein Screenshot vom aktuellem Widget und die Widget Datei.
Grüße
Michael


- Asus PN 41- mapleCul V1.24.01 - FHEMDuino - FHEM 6.2 - HUE Bridge - ESPEasy Bridge -  Milight HUB - smartVISU 3.40 -

wvhn

Der stateswitch selbst kann nur mit festen Werten umgehen: [17,21]. Du kannst dem hmtc Widget aber die Temperaturen als zusätzliche Parameter mitgeben  - in Deinem Fall 'day' und 'night'. Die hängst Du am besten hinten an die Parameterliste, denn dann laufen die bisherigen Seiten der Anwender ungestört weiter:
{% macro hmtc(id, txt, gad_actual, gad_set, gad_controlmode, gad_daytemp, gad_nighttemp, gad_window, gad_battery_therm,gad_battery_vent ,gad_state, gad_txt, step, gad_valve, gad_humidity, show_auto_man, min_temp, max_temp, day, night) %}

Du rufst das Widget dann auf mit
{{homematic.hmtc('KelleFlur_Heizung','KellerFlur','KellerFlur_Heizung.Temp.sw','KellerFlur_Heizung.set','KellerFlur_Heizung.controlmode','KellerFlur_Heizung.daytemp' ,'KellerFlur_Heizung.nighttemp' ,'' ,'KellerFlur_Heizung._battery','KellerFlur_Ventil._battery','KellerFlur_Heizung.state' ,'',''   ,'KellerFlur_Heizung.valve','KellerFlur_Heizung.humidity', '21', '17') }}

Die twig Template Engine fügt die Parameter in den stateswitch ein, wenn dieser so aufgerufen wird
{{ basic.stateswitch(id~'night', gad_set, 'icon', [day, night], 'scene_night') }}

Besser ist es noch, dem Widget default-Werte mitzugeben:
{{ basic.stateswitch(id~'night', gad_set, 'icon', [day|default('21'), night|default('17')], 'scene_night') }}

Damit der Template Checker das Widget korrekt verarbeiten kann, solltest Du die "Docstrings" noch pflegen, also die Parameter vervollständigen und die item-Typen gleich mit angeben.

Gruß
Wolfram

herrmannj

ZitatMeine ausführliche Antwort hierzu hat mir die Forensoftware gerade gelöscht, weil ich beim Zurückschalten aus der Vorschau wohl vergessen habe, die Hauptstadt von Frankreich zu benennen. Tolles Feature  >:(

Wird nur bei Newbies abgefragt :) Wird also mit steigender Beteiligung besser.

Herzlich Willkommen! und Danke für Deine Introduction (https://forum.fhem.de/index.php/topic,118508.0.html)

Funsailor

Hallo Wolfram,
das ist leider nur die halbe Miete, die Tag/Nachttemperaturen sind im Gerät abgelegt /einstellbar und die Werte möchte ich gerne nehmen. Ansonsten müsste ich dann bei Änderungen die Seite bearbeiten. Oder das Widget so änpassen, das diese Temperatur auch über SmartVisu geändert werden können.
Sinnvoller ist es wohl, hier eine Umschaltung des Modes Tag/Nacht auszulösen. Da bin ich jetzt am testen.
Gruß
Michael
- Asus PN 41- mapleCul V1.24.01 - FHEMDuino - FHEM 6.2 - HUE Bridge - ESPEasy Bridge -  Milight HUB - smartVISU 3.40 -

wvhn

Moin Michael,

Wenn die Sollwerte im Gerät gespeichert sind, reicht es ja sicherlich aus, im Gerät den Tag/Nachtmodus umzuschalten. Oder müssen zwingend Sollwerte übermittelt werden? Ging das in v2.9 schon mal?

Wenn Sollwerte verändert werden sollen, ist das neue Widget device.rtrslider geeignet.

Gruß
Wolfram

Funsailor

Hallo Wolfgang,
in der 2.9er Version wurden die Temperaturen, die  im Widdget vorgegeben wurde, umgestellt (17/21). Davon will ich weg.
Ich habe das jetzte mit der Modumschaltung gemacht, für das Anzeigen der Symbole  ist aber das Verhalten der HM-TC-IT-WM-W-EU Thermostate wenig dienlich.
Mit "set_night" wird das Symbol (kann ich im Moment nicht genau sagen, mach das via VPN) umgeschaltet und die Temperatur gesetzt (bei mir18°). Dann springt das Thermostat wieder in den vorherigen Mode.

Starte mit Manuellem Mode:


2021-02-06 12:51:22.207 CUL_HM UG_FlurThermostat_Climate controlMode: set_night
2021-02-06 12:51:23.481 CUL_HM UG_FlurThermostat_Climate boostTime: -
2021-02-06 12:51:23.481 CUL_HM UG_FlurThermostat_Climate commReporting: off
2021-02-06 12:51:23.481 CUL_HM UG_FlurThermostat_Climate controlMode: manual
2021-02-06 12:51:23.481 CUL_HM UG_FlurThermostat_Climate desired-temp: 18.0
2021-02-06 12:51:23.481 CUL_HM UG_FlurThermostat_Climate T: 17.0 desired: 18.0
2021-02-06 12:51:23.481 CUL_HM UG_FlurThermostat_Climate winOpenReporting: off


Ich wollte eigentlich das weiße Symbol (Inaktiv) haben und wenn Night/Day eingestellt ist, das entsprechende Symbol in grün (Aktiv) darstellen.
Da bin ich jetzt am suchen, habe aber noch keinen richtigen Plan.....
Wenn der Mode Night eingestellt wurde, soll das Symbol aktiv werden und bei set_day, set_manual, set_auto wieder inaktiv

Beim Boost funktioniert der Thermostat wie gewünscht.
set_boost, boost, ..... nach der Boosttime ... auto/manuell
Grüße
Michael
- Asus PN 41- mapleCul V1.24.01 - FHEMDuino - FHEM 6.2 - HUE Bridge - ESPEasy Bridge -  Milight HUB - smartVISU 3.40 -

Funsailor

Hallo
da ich nun auch den Sprung auf smartVISU 3.01 gemacht habe, passe ich den Titel an. Ich hoffe das ist nicht gegen alle Geflogenheiten, wenn doch bitte Bescheid sagen
Gruß
Michael
- Asus PN 41- mapleCul V1.24.01 - FHEMDuino - FHEM 6.2 - HUE Bridge - ESPEasy Bridge -  Milight HUB - smartVISU 3.40 -

Onkel.Tom


Hallo,

ich komme hier nicht weiter und hoffe auf Eure Hilfe.

Ich bekomme den basic.flip nicht zum Laufen,   >:(
wohingegen der basic.stateswitch mit demgleichen Schalter und dengleichen Frinthem-Einstellungen funktioniert:  :) 

funktioniert nicht vollständig:
{{ basic.flip('', 'FlurLicht.unten', 'an', 'aus', 'on', 'off') }}

funktioniert:
{{ basic.stateswitch('', 'FlurLicht.unten', 'midi', '', '', ['aus','an']) }}

Der basic.flip schaltet zwar die Lampe, die Darstellung bleibt aber auf aus und dunkel.
Woran liegt das ?

Mein System:
smartVisu, Version 3.01
Treiber Datenquelle: FHEM
Fronthem GAD: item, reading=state, converter=OnOff, cmd set=toggle, permissions read/write

Tausend Dank für jeden zielführenden Hinweis !

Viele Grüße
Tom

GammaTwin

Grüße,

Du hast da einen Denkfehler. Der Converter "OnOff" von fronthem übersetzt das "on"/"off" von FHEM in "1"/"0" für die smartVISU, und umgekehrt. In der smartVISU kommen also die Zustände "on"/"off" nicht vor.

Daher so:
{{ basic.flip('', 'FlurLicht.unten', 'an', 'aus', '1', '0') }}

Sailor

Moin zusammen

Verstaendnisfrage: Ich bin gerade dabei SmartVISU erstmals aufzusetzen.
Dabei dachte ich: Verwende man nicht die "cleaninstall" der Version 2.7 sondern clone dir gleich die 3.01.

Scheinbar gibt es dort einige Dateien nicht wie die "config.ini"

Habe ich da etwas falsch gedacht oder muss ich erst die Installation mit
git clone https://github.com/herrmannj/smartvisu-cleaninstall.git
machen und dann erst
git clone https://github.com/Martin-Gleiss/smartvisu
drüber installieren.

Danke für Eure Hilfe!

Gruß
    Sailor
******************************
Man wird immer besser...

Funsailor

Hallo Sailor,
wenn du das erste mal smartVISU aufrufst, wird eine Seite mit der Configauswahl angezeigt. Dort "Config" auswählen und dort deine Einstellungen vornehmen. Mit "Save settings" wird die Config.ini erzeugt.
Bei Fragen zu SmartVISU ohne FHEM Problemstellungen ist das KNX Forum sehr hilfreich, z.B.:
https://knx-user-forum.de/forum/supportforen/smartvisu/1506222-smartvisu-config-ini-kann-nicht-erstellt-werden

Gruß
Der "lustige Segler"
Michael
- Asus PN 41- mapleCul V1.24.01 - FHEMDuino - FHEM 6.2 - HUE Bridge - ESPEasy Bridge -  Milight HUB - smartVISU 3.40 -

Sailor

Hi Michael

Zitat von: Funsailor am 11 März 2021, 23:22:15
wenn du das erste mal smartVISU aufrufst, wird eine Seite mit der Configauswahl angezeigt. Dort "Config" auswählen und dort deine Einstellungen vornehmen. Mit "Save settings" wird die Config.ini erzeugt.
Bei Fragen zu SmartVISU ohne FHEM Problemstellungen ist das KNX Forum sehr hilfreich, z.B.:
https://knx-user-forum.de/forum/supportforen/smartvisu/1506222-smartvisu-config-ini-kann-nicht-erstellt-werden

Danke für den Hinweis.

Man sollte evtl. irgendwo hinzufügen, dass das Verzeichnis /var/www/smartvisu unter Apache je nach Konfiguration auch /var/www/html/smatrvisu sein kann.
Das hat mich 2 Stunden gekostet herauszufinden...

Und weiter gehts!

Gruß
    Sailor
******************************
Man wird immer besser...

wvhn


Sailor

Hallo Michael

Danke für deine Info!
Ich komme Schritt für Schritt weiter.

Zitat von: Funsailor am 05 Februar 2021, 11:07:48
Das Widget habe ich schon erweitert, hier der Aufruf:

{{homematic.hmtc('KelleFlur_Heizung','KellerFlur','KellerFlur_Heizung.Temp.sw','KellerFlur_Heizung.set','KellerFlur_Heizung.controlmode','KellerFlur_Heizung.daytemp' ,'KellerFlur_Heizung.nighttemp' ,'' ,'KellerFlur_Heizung._battery','KellerFlur_Ventil._battery','KellerFlur_Heizung.state' ,'',''   ,'KellerFlur_Heizung.valve','KellerFlur_Heizung.humidity') }}



Hierzu habe ich eine Frage

Womit verknüpfst du die Parameter? - Teilweise kann ich mir das vorstellen, aber im Detail bin ich noch verwirrt.

Ich habe folgende Topologie
Prefix "xx_" zeichnet den Raum aus z.B.: "GR_" zeichnet den GuestRoom aus

"GR_Thermostat" ist der Homematic Wand-Thermostat HM-TC-IT-WM-W-EU
"GR_Thermostat_Climate" ist der _Climate - Kanal des Homematic Wand-Thermostat
"GR_Radiator" ist das Homematic Heizkoerperventil HM-CC-RT-DN
"GR_Window" ist der Homematic Fenstersensor HM-SEC-SC-2

Demnach habe ich gedacht das


'KellerFlur_Heizung' - ???
'KellerFlur_Heizung.Temp.sw' - GR_Thermostat_Climate:desired-temp
'KellerFlur_Heizung.set' - ???
'KellerFlur_Heizung.controlmode' - GR_Thermostat_Climate:controlMode
'KellerFlur_Heizung.daytemp' - GR_Thermostat_Climate:R-dayTemp
'KellerFlur_Heizung.nighttemp' - GR_Thermostat_Climate:R-nightTemp
'KellerFlur_Heizung._battery' - GR_Thermostat:batteryLevel
'KellerFlur_Ventil._battery' - GR_Radiator:batteryLevel
'KellerFlur_Heizung.state' - ???
'KellerFlur_Heizung.valve' - GR_Radiator_Clima:ValvePosition
'KellerFlur_Heizung.humidity' - GR_Thermostat_Climate:humidity


Liege ich da richtig? Und wenn ja, was muss in die ??? - Felder?

Danke

Gruß
    Sailor
******************************
Man wird immer besser...

Funsailor

#16
Hallo Sailor,
sorry, habe deine Antwort erst eben gelesen. Bin im Moment beim Verlegen vom Netzwerkkabel im Haus. Bisher ging das über mehrere Switches. Und es ist gar nicht so einfach in einem 30 Jahre altem Haus die "Route" vom Hafen (Switch ) zur Bucht (Netzwerkdose)  ;) zu finden.
Dadurch blieb das Widget (und andere Projekte) liegen, es ist besser geworden, aber immer noch nicht so das es mir endgültig gefällt.

Aber zu deinen Fragen:

'KellerFlur_Heizung'        ist das "unique id for this widget" und optional ... kann auch leer bleiben
'KellerFlur_Heizung.set' device: GR_Thermostat_Climate
                                        reading: desired-temp
                                        converter: Direct
                                        set: desired-temp
'KellerFlur_Heizung.state'    device: GR_Thermostat
                                        reading:  Activity
                                        converter: Direct


Allerdings waren das nur die Parameter für den ersten Entwurf des Widgets.

Jetzt sieht das Widget so aus wie im Bild HMTC_SmartVISU_01.
Das neue Widget habe ich auch angehängt.

Der Aufruf ist ein wenig länger geworden:
Zitat{{homematic.hmtc('KelleFlur_Heizung','','KellerFlur_Heizung.Temp.sw','KellerFlur_Heizung.set','KellerFlur_Heizung.controlmode','KellerFlur_Heizung.daytemp','KellerFlur_Heizung.nighttemp','','KellerFlur_Heizung.battery','KellerFlur_Heizung.state','','','KellerFlur_Heizung.valve','KellerFlur_Heizung.humidity','','15','28','KellerFlur_Ventil.battery','KellerFlur_Heizung.ModeWechsel','#f00') }}

Das meiste ist selbserklärend und im Widget sind einige "if / else" drin. Auch die Farbe der Modeanzeige (Bei mir rot) kann im Aufruf angepasst werden (colorModeWechsel)

Der "gad_ModeWechsel" reagiert auf ein Notify:

define SendControlModeUG_Flur notify
UG_FlurThermostat_Climate.controlMode:.* {
   my $CtrlMode =  (ReadingsVal("UG_FlurThermostat_Climate","controlMode",""));;
   if (($CtrlMode eq ("set_day"))or($CtrlMode eq ("set_night")) or($CtrlMode eq ("set_auto"))or($CtrlMode eq ("set_manual"))or($CtrlMode eq ("set_boost")))
   {
     Log(0,"Log2UG_FlurThermostat wird umgestellt:".$CtrlMode."<--");;
     fhem("set DummyModeThermostatKellerFlur $EVTPART1");;
     }
    }

und ein dummy (hier der List)

Internals:
   FUUID      602aeca4-f33f-088a-8bb7-818fb53b6f7857f0
   NAME       DummyModeThermostatKellerFlur
   NR         663
   STATE      set_night
   TYPE       dummy
   READINGS:
     2021-02-16 23:43:26   set_auto       
     2021-02-16 23:43:21   set_boost       
     2021-02-16 23:43:34   set_day         
     2021-02-16 23:43:29   set_night       
     2021-03-24 22:18:23   state           set_night
Attributes:
   setList    set_night set_day set_auto set_boost set_manual
   userReadings set_night set_day set_auto set_boost,set_manual


Einstellen musst du
Zitat
KellerFlur_Heizung.ModeWechsel
                                device: DummyModeThermostatKellerFlur
                                reading: state
                                converter: direct

Was mir nicht gefällt:
1. Für jedes Thermostat muss ein dummy und ein notify erstellt werden, das will ich (wenn ich mal viel Zeit habe) in die 99_myUtils verlegen.
2. Mit dem Notify filtere ich die "set_" Änderungen heraus und zeige an, mit welchem Mode die Temperatur geändert wurde. Wenn irgendwann der Wochenplan zuschlägt, sehe man das nicht. Darüber muss ich mir auch nochmal Gedanken machen.
Und vieleicht noch ein Party Mode einbauen.

Außerdem benötigst du noch die Icons.  Die sani_heating_boost.svg_sw gehört in den Ordner /var/www/html/smartVISU/icons/sw und muss dann in Die sani_heating_boost.svg umbenannt werden.
Das gilt auch für die Die sani_heating_boost.svg_ws...

Die Modeanzeige kann man auch als Text darstellen, dann einfach den zweiten Parameter einfügen.
Mit Symbol:
homematic.hmtc('KelleFlur_Heizung','','KellerFlur_Heizung.Temp.sw','
Mit Text:
homematic.hmtc('KelleFlur_Heizung','KellerFlur','KellerFlur_Heizung.Temp.sw','

Ansonsten viel Spaß und wenn du Fragen hast, melde dich.
Gruß
Michael
- Asus PN 41- mapleCul V1.24.01 - FHEMDuino - FHEM 6.2 - HUE Bridge - ESPEasy Bridge -  Milight HUB - smartVISU 3.40 -