NEWS
Sonoff NSPanel
-
@donniewoo Punkt 2 und3 habe ich gelöst.
Was die Wechselschaltung angeht bin ich soweit, dass ich die beiden Relais gruppiert habe und sie asynchron schalten. Interessant wäre noch wie ich eine Rule erstelle welche verhindert das beide "off" sind.Auch das schalten der Rollläden über uiid 11 war kein Problem.
Das Ansprechen der Outlets bei Multiswitches über IoBrocker konnte ich immer noch nicht lösen. Mag es mir bitte einer erklären?
@DOCGAME wie lässt sich nspdim via MQTT steuern? Ich würde gern ein Blockly zur Zeit Steuerung erstellen bekomm es aber nicht hin, wie hast du das gelöst?
-
Ich habe seit 3 Wochen nichts mehr versucht, da ich mit dem Blockly und dem Parsen nicht so richtig Klar gekommen bin.
Ich habe immer gehofft, dass es mal eine Anleitung für "Dummys" gibt.
Jetzt habe ich gerade etwas in einem Openhabforum gefunden was ich sehr ansprechend finde und das viel mehr Möglichkeiten bietet.
Mein Englisch ist nicht das beste... ich finde da ganze aber von dem was ich verstehe sehr interessant. Hat sich da schon mal jemand ran gewagt und eine vernünftige Ansteuerung für den ioBroker hinbekommen?
Hier der Link: NX Panel Firmware -
Ich versuche, über den ioBroker gerade herauszufinden, ob einer der beiden physikalischen Schalter getätigt wurde oder das Relais lediglich per Software.
Die Unterscheidung kann man z.B. bei den Shellies unter
Input / Detach
erfahren.Ich möchte meine Bewegungsmelder vom automatischen Abschalten der Lampen, die am NSPanel dran hängen, abzuhalten, wenn der physikalische Button betätigt wurde.
Hat da jemand eine Idee?
-
@kptkip
SetOption114 1
?
https://tasmota.github.io/docs/Commands/#setoptions
Wenn mal dort stöbert finden sich viele Interessante Optionen. -
Noch einmal zum Thema outlets, es funktioniert, ist aber hässlich. Hat jemand eine andere Lösung, bitte?
block xmlns="https://developers.google.com/blockly/xml" type="on" id="%EyOn{I#|;b(C5[k^L@@" x="-537.2998" y="3762.1322"> <field name="OID">Object ID</field> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="on" id="RE}OOwL(gcsufpkxT$Tv"> <field name="OID">mqtt.0.SmartHome.nspanel_7A3C70.tele.RESULT</field> <field name="CONDITION">any</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="controls_if" id="4^bM+A%,f_(@#L!}+Mhb"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_operation" id="SM/Yz0Ry/aB(?:QO0TbW"> <field name="OP">OR</field> <value name="A"> <block type="logic_compare" id="Ar3rxm%M}$QyQlvUkUT-"> <field name="OP">EQ</field> <value name="A"> <block type="on_source" id="d=eVL6)Tla1;.]yAl]j^"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="text" id="a~9q+{=/:g0i)-?SEGz6"> <field name="TEXT">{"NSPanel":{"id":"6","params":{"switches":[{"switch":"on","outlet":0},{"switch":"off","outlet":1}]}}}</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="@0*WCtT=!yFNt9]aF=vb"> <field name="OP">EQ</field> <value name="A"> <block type="on_source" id="QpRMOf/`CsH,s:bhX-+["> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="text" id="7Rf*pTQU!_1+T5+3b/?b"> <field name="TEXT">{"NSPanel":{"id":"6","params":{"switches":[{"switch":"on","outlet":0},{"switch":"on","outlet":1}]}}}</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="~0[VcZ#]x!mPY{BTm_@A"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">shelly.0.SHSW-1#8AA73F#1.Relay0.Switch</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="u.g;#U@qZ8hzjVU5O9!X"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> <value name="IF1"> <block type="logic_operation" id="r:jn;4MuTyqHBFh~-S_F"> <field name="OP">OR</field> <value name="A"> <block type="logic_compare" id="k/Z9Ao.,q)^8Wr^D];Xz"> <field name="OP">EQ</field> <value name="A"> <block type="on_source" id="?2l|+YjxXqIo2.*v3#7Q"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="text" id="c#G+qG=Y*ftIumEncY|="> <field name="TEXT">{"NSPanel":{"id":"6","params":{"switches":[{"switch":"off","outlet":0},{"switch":"off","outlet":1}]}}}</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="]-M4(n}RAuxPL!t0*m^{"> <field name="OP">EQ</field> <value name="A"> <block type="on_source" id="q,@{~GxIb}Rx!+bpitfy"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="text" id="]FH87^koOh?a^{d*Pq#2"> <field name="TEXT">{"NSPanel":{"id":"6","params":{"switches":[{"switch":"off","outlet":0},{"switch":"on","outlet":1}]}}}</field> </block> </value> </block> </value> </block> </value> <statement name="DO1"> <block type="control" id="]^:0%~)(.@HRbrS%T]2t"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">shelly.0.SHSW-1#8AA73F#1.Relay0.Switch</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="6//q^20gN|G(1zRe[d]C"> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> <next> <block type="controls_if" id="Pk-oml(]H,yrLi.8IHVy"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_operation" id="XCbFA|#bbp}oRNv-L4]x"> <field name="OP">OR</field> <value name="A"> <block type="logic_compare" id="Hsz^uX:Oed[)nyv3Pd(@"> <field name="OP">EQ</field> <value name="A"> <block type="on_source" id="/4o8(csH4`[AHXWRu0~y"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="text" id="u~g,7+~b_fjMnS!b^Y#s"> <field name="TEXT">{"NSPanel":{"id":"6","params":{"switches":[{"switch":"on","outlet":0},{"switch":"on","outlet":1}]}}}</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id=";I4v4{cqB*I-MjRdjGaP"> <field name="OP">EQ</field> <value name="A"> <block type="on_source" id="pMO%T5uy7n/6CtyLAt1E"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="text" id="~e3o*~0g:0{x;fjld6=g"> <field name="TEXT">{"NSPanel":{"id":"6","params":{"switches":[{"switch":"off","outlet":0},{"switch":"on","outlet":1}]}}}</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="!P[];t/*:t)byb~yWQWA"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">tradfri.0.L-65585.lightbulb.state</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="$)|3oTWYbafu_Tgdn[c)"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> <value name="IF1"> <block type="logic_operation" id="gz.~1Ai}3yaJY$azE#wx"> <field name="OP">OR</field> <value name="A"> <block type="logic_compare" id="|i;()n*i7FL^W|huvZ9G"> <field name="OP">EQ</field> <value name="A"> <block type="on_source" id="*tP]a$TF_d+ko{@m_;j;"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="text" id="pYBUef0_M@+.bCT!N*%="> <field name="TEXT">{"NSPanel":{"id":"6","params":{"switches":[{"switch":"off","outlet":0},{"switch":"off","outlet":1}]}}}</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="s*lV!eTM:XA5UC9$Jw#t"> <field name="OP">EQ</field> <value name="A"> <block type="on_source" id="e]-y/sRXiApZJ2N({[K!"> <field name="ATTR">state.val</field> </block> </value> <value name="B"> <block type="text" id="kPt;YIQB`=/Zz-Nqy!bF"> <field name="TEXT">{"NSPanel":{"id":"6","params":{"switches":[{"switch":"on","outlet":0},{"switch":"off","outlet":1}]}}}</field> </block> </value> </block> </value> </block> </value> <statement name="DO1"> <block type="control" id="zeT3(e}f,i^.vQaY*]P~"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">tradfri.0.L-65585.lightbulb.state</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="f=H#OyJ_mLOUGP(w]WnO"> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> </block> </next> </block> </statement> <next> <block type="on" id="DAaf5S[MB_p{eGd(V*x3"> <field name="OID">shelly.0.SHSW-1#8AA73F#1.Relay0.Switch</field> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="controls_if" id="Tnc4f5DKo,99{MIg-4Se"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="on_source" id="F.[=Ys)Sf;njZz#ECPW{"> <field name="ATTR">state.val</field> </block> </value> <statement name="DO0"> <block type="sendto_custom" id="x70$Z:W/A|^wwMeRAQ1R"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="topic,message" with_statement="false"></mutation> <field name="INSTANCE">mqtt.0</field> <field name="COMMAND">sendMessage2Client</field> <field name="LOG"></field> <field name="WITH_STATEMENT">FALSE</field> <value name="ARG0"> <shadow type="text"> <field name="TEXT">SmartHome/nspanel_7A3C70/cmnd/NSPSend</field> </shadow> <block type="convert_tostring" id="EEi$X|c`gBLbj3#a;+f."> <value name="VALUE"> <block type="text" id="HL`[LHc}[g?|hl%wc|OY"> <field name="TEXT">SmartHome/nspanel_7A3C70/cmnd/NSPSend</field> </block> </value> </block> </value> <value name="ARG1"> <shadow type="text"> <field name="TEXT"> {"ATCMode": 0}</field> </shadow> <block type="convert_tostring" id="HO;X+hyFDu_Dw_5~O$$k"> <value name="VALUE"> <block type="text" id="84W[F*M9~6Jewo=esXBp"> <field name="TEXT">{"NSPanel":{"id":"6","params":{"switches":[{"switch":"on","outlet":0}]}}}</field> </block> </value> </block> </value> </block> </statement> <value name="IF1"> <block type="logic_negate" id="0H|}uF#Uy-k|bdQ@Pub@"> <value name="BOOL"> <block type="on_source" id="C(@`U_762M@s8ZOQ)6Mh"> <field name="ATTR">state.val</field> </block> </value> </block> </value> <statement name="DO1"> <block type="sendto_custom" id="RW{TIwqJovK-7)wl}OA,"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="topic,message" with_statement="false"></mutation> <field name="INSTANCE">mqtt.0</field> <field name="COMMAND">sendMessage2Client</field> <field name="LOG"></field> <field name="WITH_STATEMENT">FALSE</field> <value name="ARG0"> <shadow type="text"> <field name="TEXT">SmartHome/nspanel_7A3C70/cmnd/NSPSend</field> </shadow> <block type="convert_tostring" id=";l_uZ8!D#OdLGHi^234C"> <value name="VALUE"> <block type="text" id="ePqNyTR{z7j4f7y49zUx"> <field name="TEXT">SmartHome/nspanel_7A3C70/cmnd/NSPSend</field> </block> </value> </block> </value> <value name="ARG1"> <shadow type="text"> <field name="TEXT"> {"ATCMode": 0}</field> </shadow> <block type="convert_tostring" id="q!7Yl%*yE=l*IF/w^M.E"> <value name="VALUE"> <block type="text" id="Y8zbp#:2f?``+5:lD~Aq"> <field name="TEXT">{"NSPanel":{"id":"6","params":{"switches":[{"switch":"off","outlet":0}]}}}</field> </block> </value> </block> </value> </block> </statement> </block> </statement> <next> <block type="on" id="$q~)-GqB%u,Ps,*hv{Rv"> <field name="OID">tradfri.0.L-65585.lightbulb.state</field> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="controls_if" id="IswT0nXU4*Ddayki-Mhy"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="on_source" id="#,7Gh^ok$uy774J@DwxQ"> <field name="ATTR">state.val</field> </block> </value> <statement name="DO0"> <block type="sendto_custom" id="9Bw.{*kjA`*M%[z*nMAL"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="topic,message" with_statement="false"></mutation> <field name="INSTANCE">mqtt.0</field> <field name="COMMAND">sendMessage2Client</field> <field name="LOG"></field> <field name="WITH_STATEMENT">FALSE</field> <value name="ARG0"> <shadow type="text"> <field name="TEXT">SmartHome/nspanel_7A3C70/cmnd/NSPSend</field> </shadow> <block type="convert_tostring" id="*MyW(j5ad`7`ZM7D]TRS"> <value name="VALUE"> <block type="text" id="y|J{$*VXS-c_b3F_(U3-"> <field name="TEXT">SmartHome/nspanel_7A3C70/cmnd/NSPSend</field> </block> </value> </block> </value> <value name="ARG1"> <shadow type="text"> <field name="TEXT"> {"ATCMode": 0}</field> </shadow> <block type="convert_tostring" id="p)axM?N$)iNbJ_+zAEe9"> <value name="VALUE"> <block type="text" id="k[rKsip7`3]ck$%,ZQgm"> <field name="TEXT">{"NSPanel":{"id":"6","params":{"switches":[{"switch":"on","outlet":1}]}}}</field> </block> </value> </block> </value> </block> </statement> <value name="IF1"> <block type="logic_negate" id="h1)Az`H2)./dcqVC/i-u"> <value name="BOOL"> <block type="on_source" id="hWU)I^,_=pn%dv%eOM%:"> <field name="ATTR">state.val</field> </block> </value> </block> </value> <statement name="DO1"> <block type="sendto_custom" id="hm1`@.|fLglV~:k8Orv_"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="topic,message" with_statement="false"></mutation> <field name="INSTANCE">mqtt.0</field> <field name="COMMAND">sendMessage2Client</field> <field name="LOG"></field> <field name="WITH_STATEMENT">FALSE</field> <value name="ARG0"> <shadow type="text"> <field name="TEXT">SmartHome/nspanel_7A3C70/cmnd/NSPSend</field> </shadow> <block type="convert_tostring" id="QU$SUl:=?l^9+`XApqE0"> <value name="VALUE"> <block type="text" id="/WA.$3`;7ks8xhN}|2pq"> <field name="TEXT">SmartHome/nspanel_7A3C70/cmnd/NSPSend</field> </block> </value> </block> </value> <value name="ARG1"> <shadow type="text"> <field name="TEXT"> {"ATCMode": 0}</field> </shadow> <block type="convert_tostring" id="8v~Q+e*ywKxz!,5{Uz/l"> <value name="VALUE"> <block type="text" id="c{3gcVljR[IGy*~!1Ah-"> <field name="TEXT">{"NSPanel":{"id":"6","params":{"switches":[{"switch":"off","outlet":1}]}}}</field> </block> </value> </block> </value> </block> </statement> </block> </statement> </block> </next> </block> </next> </block> </statement> </block>
-
@bananajoe said in Sonoff NSPanel:
SetOption114 1
Im Prinzip bin ich den Weg gegangen.Ich habe die Buttons von den Relais gelöst:
ButtonTopic /%topic%/button
Damit landen beim Betätigen der Buttons Trigger auf zwei neuen Datenpunkten, die ich dann in zwei selbst erstellte Datenpunkte toggle und damit persistiere. Damit habe ich dann die Button-Status zur Weiterverarbeitung im ioBroker.
Nun klappt es, dass der Bewegungsmelder nur noch die Lampen ausschaltet, wenn die Buttons ausgeschaltet sind.
Im Prinzip ein ziemlicher Umweg (NSPanel-Button->MQTT->ioBroker->Verarbeitung->MQTT->Relais) aber lüppt -
Hallo erstmal,
ich habe seit gestern auch ein Panel hier. Tasmota geflashed und auch die Ansteuerung über mqtt geht soweit.
Aber die ursprüngliche FW ist da doch recht eingeschränkt Bei OpenHap oder HA ist man schon viel weiter und arbeitet mit eigenen FW. Die GUIs sehen echt vielversprechend aus:
https://community.openhab.org/t/nxpanel-replacement-firmware-for-sonoff-nspanel/132869https://github.com/joBr99/nspanel-lovelance-ui
Da beide Versionen über mqtt laufen, sollte man das doch mit iobroker nutzen können? Das ursprüngliche tft kann man ja vorab sichern.
Gruß
Holger -
@holgerwolf Hallo Holger,
den Link zum Openhubforum habe ich vor einer Woche auch schon gepostet. Bis jetzt leider noch keine Reaktion.
Ich fände es auch super wenn etwas Bewegung reinkommen würde, da ich zum Entwickeln des ganzen völlig ungeeignet bin und meine bis zu einer "guten" Lösung in der Schublade bleiben. -
Korrigiert mich bitte. Aber ich habe das so verstanden dass nur die nspanel.be durch nxpanel.be ersetzt werden muss.
Der rest wäre doch nur MQTT und Script. -
@muchul
Nein, du wirst auch das Display flashen müssen. -
@maik-0
Kannst du mir bitte zeigen wo ich das finde?
Mit Google translate kommt nicht alles so richtig bei mir an.Tasmota ist klar.
Edit:
Habs gefunden, mit InstallNxPanel kommt die Firmware drauf. -
Hallo zusammen,
weiß jemand wie man das Format des Datums auf der Hauptseite ändern kann?
Aktuell wird es ja in MM/DD WD angezeigt. Ich hätte aber lieber gerne unsere übliche Schreibweise.Danke vorab
-
Habe seit gestern auch ein NSPanel und habe die outlets (Punkt 1) wie folgt gelöst:
Eigentlich ist es der gleiche Baustein in Matthias Video/Quellcodes (@haus-automatisierung war eine sehr gute Starthilfe), nur das jetzt die Zustände der einzelnen switches ausgewertet werden.
Beispiel für einen 4-fach Switch (siehe Screenshot):
NSPanel.params.switches.0.switch
NSPanel.params.switches.1.switch
NSPanel.params.switches.2.switch
NSPanel.params.switches.3.switchUnd die Feedbacks sehen dann wie folgt aus:
Falls es noch jemand schaffen sollte die Umbenennung der Outlets hinzubekommen, so wäre ich ebenfalls dankbar.
VG
-
Hat irgendjemand schon mit dem NSPanel-Thermostat (Slide 3) experimentiert? Ich bin da über eine Sache gestoßen, bei der ich mir nicht sicher bin ob das gewollt oder ein BUG im Panel ist!
Bei der Auswahl der Setpoint-Temperatur (egal ob über +/- oder das Widget), bekomme ich immer wenn ich auf 21°C komme einen Rücksprung auf den vorherigen Wert. Im JSON-String finde ich {"NSPanel":{"ATCMode":0,"ATCExpect0":21}B}} statt {"NSPanel":{"ATCMode":0,"ATCExpect0":21}}. Also ohne das überflüssige "B}", wie bei den restlichen Werten.
Ich helfe mir aktuell mit einem Workaround --> Funktioniert auch super... --> und alles verhält sich normal.
Hat jemand ebenfalls dieses Phänomen? Weiß jemand, ob das gewollt ist? Wie habt ihr das gelöst?
VG
-
ist wohl nen Bug in dem Berry Driver von blakadder
-
@holgerwolf Mittlerweile gibt's auch jemand der nen ioBroker Backend für nspanel-lovelace-ui baut
https://github.com/joBr99/nspanel-lovelace-ui/tree/main/ioBroker
-
@jobr99 Dann versuch ich das mal nachzubauen
Den berry Treiber habe ich auf dem NSPanel installiert. Jedenfalls habe ich jetzt eine weitere Konsole in Tasmota:
Wenn ich jetzt aber das tft File flashen will passiert nix:
Ich hatte das auch mit nem tft vom eigenen Webserver versucht aber auch da passiert nix.
Fehlt mir noch was? -
Ja, du musst den Berry Treiber aus dem Repo hochladen/installieren, Tasmota neustarten und dann solltest du den FlashNextion Command haben. Die Berry Konsole ist bei Tasmota für ESP32 immer dabei.
https://github.com/joBr99/nspanel-lovelace-ui#upload-berry-driver-to-tasmota
und bis das ioBroker Backend geupdatet ist musst du Version 1.9.1 nehmen
FlashNextion http://nspanel.pky.eu/lovelace-ui/github/nspanel-v1.9.1.tft
-
@jobr99 Mein Fehler. Die autoexce.be war falsch.
Ich mache morgen weiter...
-
@jobr99 Da auch immer in den readme‘s davon die Rede ist, was meinst du den mit iobroker backend?