NEWS
Sonoff NSPanel
-
@dark-angel sagte in Sonoff NSPanel:
@haus-automatisierung: könntest Du diese Methode bitte etwas genauer erläutern?
Welche Methode? Alles, was ich bisher mit dem Panel gemacht habe, ist im Video zu sehen
-
@haus-automatisierung sagte in Sonoff NSPanel:
Wie hast Du den Datenpunkt denn angelegt? Ich sende dafür immer einen Befehl aus einem MQTT-Programm (wie MQTT-Explorer) damit dieser in ioBroker angelegt wird. Manuell anlegen klappt nicht, weil Dir dann das native-Attribut für das Topic fehlt.
Meine Frage bezog sich auf diese Antwort.
Werde mir das Video noch mal etwas genauer anschauen. Danke. -
@dark-angel sagte in Sonoff NSPanel:
Meine Frage bezog sich auf diese Antwort.
Das sind ioBroker-Grundlagen Das hat mit dem NSPanel ja nichts zu tun. Der MQTT-Adapter im ioBroker legt alle Objekte automatisch an, wenn er eine Nachricht bekommt. Dafür muss das Topic natürlich abonniert sein.
Ob Du eine Nachricht auf dem Topic per MQTT-Explorer oder mit mosquitto_pub oder was auch immer schickst, ist egal. Du kannst halt nur nicht das Objekt manuell anlegen, weil dann das native Attribut fehlt, welches das Topic enthält, welches mit diesem Datenpunkt verknüpft ist.
Siehe ioBroker Master Kurs
-
Meine IKEA und Osram Lampen (Zigbee) habe ich im NSPanel mit Blockly eingebunden. Funktioniert - fast. Problem ist NSPanel warmton kleiner Wert kaltton großer Wert. Bei den Lampen ist es genau andersrum. Hat jemand eine Idee wie man das ändert? Tip von haus-automatisierung "Im Zweifel einfach im Script umrechnen." - Bin leider kein Matematiker oder Programmierer - und stehe voll auf dem Schlauch. Hat jemand evtl. eine Lösung oder kann mir ein Blockly zeigen? Gruß Frank
-
@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