"type": "output",
"address": 56,
"pins":
- [ [ "A1-1", "T1-1" ], [ "A1-2", "T1-2" ],
+ [ [ "A1-1", "T1-1", "Motorschütz" ], [ "A1-2", "T1-2" ],
[ "A1-3", "T1-3", "Zentralschmierung" ], [ "A1-4", "T1-4", "Ölpumpe" ],
[ "A1-5", "T1-5" ], [ "A1-6", "T1-6" ],
[ "A1-7", "T1-7" ], [ "A1-8", "T1-8" ] ] },
"address": 32,
"interrupt pin": 4,
"pins":
- [ [ "E1-1", "T1-18" ], [ "E1-2", "T1-19" ],
- [ "E1-3", "T1-20" ], [ "E1-4", "T1-21" ],
+ [ [ "E1-1", "T1-18", "Motorschütz Rückmeldung" ], [ "E1-2", "T1-19" ],
+ [ "E1-3", "T1-20", "Zentralschmierung Rückmeldung" ], [ "E1-4", "T1-21", "Ölpumpe Rückmeldung" ],
[ "E1-5", "T1-22" ], [ "E1-6", "T1-23" ],
[ "E1-7", "T1-24" ], [ "E1-8", "T1-25", "Schwungrad" ] ] },
{ "name": "E2",
[ "E4-3", "T2-11" ], [ "E4-4", "T2-12" ],
[ "E4-5", "T2-13" ], [ "E4-6", "T2-14" ],
[ "E4-7", "T2-15" ], [ "E4-8", "T2-16" ] ] } ],
+ "andpins":
+ [ { "name": "Okay",
+ "pins":
+ [ "Zentralschmierung Rückmeldung", "Ölpumpe Rückmeldung",
+ "Schwungrad", "Öldruck", "Bruchplatte Einzug" ] } ],
"modbus":
{ "serial device": "/dev/serial0",
- "slave id": 1 } }
+ "slave id": 1 },
+ "statemachines":
+ [ { "name": "Schmierung",
+ "states":
+ { "notaus":
+ { "commands":
+ [ { "name": "setpin",
+ "pin": "Zentralschmierung",
+ "value": false },
+ { "name": "setpin",
+ "pin": "Ölpumpe",
+ "value": false } ].
+ "events":
+ [ { "name": "pinstate",
+ "pin": "Notaus",
+ "value": false,
+ "state": "aus" } ] },
+ "aus":
+ { "commands":
+ [ { "name": "setpin",
+ "pin": "Zentralschmierung",
+ "value": false },
+ { "name": "setpin",
+ "pin": "Ölpumpe",
+ "value": false } ].
+ "events":
+ [ { "name": "pinstate",
+ "pin": "Notaus",
+ "value": true,
+ "state": "notaus" },
+ { "name": "pinstate",
+ "pin": "Schmierung",
+ "value": true,
+ "state": "an" },
+ { "name": "motoran",
+ "state": "motoran" } ] },
+ "an":
+ { "commands":
+ [ { "name": "setpin",
+ "pin": "Zentralschmierung",
+ "value": true },
+ { "name": "setpin",
+ "pin": "Ölpumpe",
+ "value": true } ].
+ "events":
+ [ { "name": "pinstate",
+ "pin": "Notaus",
+ "value": true,
+ "state": "notaus" },
+ { "name": "pinstate",
+ "pin": "Schmierung",
+ "value": true,
+ "state": "aus" },
+ { "name": "motoran",
+ "state": "motoran" } ] },
+ "motoran":
+ { "commands":
+ [ { "name": "setpin",
+ "pin": "Zentralschmierung",
+ "value": true },
+ { "name": "setpin",
+ "pin": "Ölpumpe",
+ "value": true } ].
+ "events":
+ [ { "name": "pinstate",
+ "pin": "Notaus",
+ "value": true,
+ "state": "notaus" },
+ { "name": "motoraus",
+ "state": "an" } ] } },
+ "init": "aus" },
+ { "name": "Motor",
+ "states":
+ { "notaus":
+ { "commands":
+ [ { "name": "motorstop" },
+ { "name": "setpin",
+ "pin": "Motorschütz",
+ "value": false },
+ { "name": "setpin",
+ "pin": "Öllampe",
+ "value": false } ],
+ "events":
+ [ { "name": "pinstate",
+ "pin": "Notaus",
+ "value": false,
+ "state": "nichtokay" } ] },
+ "nichtokay":
+ { "commands":
+ [ { "name": "motorstop" },
+ { "name": "setpin",
+ "pin": "Motorschütz",
+ "value": true },
+ { "name": "setpin",
+ "pin": "Öllampe",
+ "value": false },
+ { "name": "getpin",
+ "pin": "Öldruck" } ],
+ "events":
+ [ { "name": "pinstate",
+ "pin": "Notaus",
+ "value": true,
+ "state": "notaus" },
+ { "name": "pinstate",
+ "pin": "Okay",
+ "value": true,
+ "state": "tippenokay" } ] },
+ "tippenokay":
+ { "commands":
+ [ { "name": "motorstop" },
+ { "name": "setpin",
+ "pin": "Motorschütz",
+ "value": true },
+ { "name": "setpin",
+ "pin": "Öllampe",
+ "value": true },
+ { "name": "getpin",
+ "pin": "Tippen" } ],
+ "events":
+ [ { "name": "pinstate",
+ "pin": "Notaus",
+ "value": true,
+ "state": "notaus" },
+ { "name": "pinstate",
+ "pin": "Okay",
+ "value": false,
+ "state": "nichtokay" },
+ { "name": "pinstate",
+ "pin": "Tippen",
+ "value": false,
+ "state": "dauerokay" },
+ { "name": "pinstate",
+ "pin": "Vorlauf",
+ "value": true,
+ "state": "tippenvor" },
+ { "name": "pinstate",
+ "pin": "Rücklauf",
+ "value": true,
+ "state": "tippenrück" } ] },
+ "tippenvor":
+ { "commands":
+ [ { "name": "tippenvor" } ],
+ "events":
+ [ { "name": "pinstate",
+ "pin": "Notaus",
+ "value": true,
+ "state": "notaus" },
+ { "name": "pinstate",
+ "pin": "Okay",
+ "value": false,
+ "state": "nichtokay" },
+ { "name": "tippenfertig",
+ "state": "tippenokay" } ] },
+ "tippenrück":
+ { "commands":
+ [ { "name": "tippenrück" } ],
+ "events":
+ [ { "name": "pinstate",
+ "pin": "Notaus",
+ "value": true,
+ "state": "notaus" },
+ { "name": "pinstate",
+ "pin": "Okay",
+ "value": false,
+ "state": "nichtokay" },
+ { "name": "tippenfertig",
+ "state": "tippenokay" } ] },
+ "dauerokay":
+ { "commands":
+ [ { "name": "motorstop" },
+ { "name": "setpin",
+ "pin": "Motorschütz",
+ "value": true },
+ { "name": "setpin",
+ "pin": "Öllampe",
+ "value": true },
+ { "name": "getpin",
+ "pin": "Tippen" } ],
+ "events":
+ [ { "name": "pinstate",
+ "pin": "Notaus",
+ "value": true,
+ "state": "notaus" },
+ { "name": "pinstate",
+ "pin": "Okay",
+ "value": false,
+ "state": "nichtokay" },
+ { "name": "pinstate",
+ "pin": "Tippen",
+ "value": true,
+ "state": "tippenokay" },
+ { "name": "pinstate",
+ "pin": "Vorlauf",
+ "value": true,
+ "state": "dauervor" } ] },
+ "dauervor":
+ { "commands":
+ [ { "name": "dauervor" } ],
+ "events":
+ [ { "name": "pinstate",
+ "pin": "Notaus",
+ "value": true,
+ "state": "notaus" },
+ { "name": "pinstate",
+ "pin": "Okay",
+ "value": false,
+ "state": "nichtokay" },
+ { "name": "pinstate",
+ "pin": "Stop",
+ "value": true,
+ "state": "dauerokay" } ] } },
+ "init": "nichtokay" } ] }
event = await queue.get()
message = json.dumps(event)
await websocket.send(message)
- # To move:
- if event['event'] == 'pinstate':
- okay = ( pins['Zentralschmierung'].value and
- pins['Ölpumpe'].value and
- pins['Schwungrad'].value and
- pins['Öldruck'].value and
- pins['Bruchplatte Einzug'].value )
- pins['Öllampe'].value = okay
- if not okay:
- active = await fu.inverter_active
- if active:
- await fu.stop_inverter()
- if event['changed'] and event['value']:
- if event['pin'] == 'Notaus':
- await fu.stop_inverter()
- pins['Zentralschmierung'].value = False
- pins['Ölpumpe'].value = False
- elif event['pin'] == 'Stop':
- await fu.stop_inverter()
- elif event['pin'] == 'Schmierung':
- pins['Zentralschmierung'].value = True
- pins['Ölpumpe'].value = True
- elif event['pin'] == 'Vorlauf':
- if pins['Öllampe'].value:
- if pins['Tippen'].value:
- #await fu.set_parameters()
- await fu.set_frequency(25)
- await fu.start_inverter()
- await asyncio.sleep(0.15)
- await fu.stop_inverter()
- else:
- #await fu.set_parameters()
- await fu.set_frequency(50)
- await fu.start_inverter()
- elif event['pin'] == 'Rücklauf':
- if pins['Öllampe'].value:
- if pins['Tippen'].value:
- #await fu.set_parameters()
- await fu.set_frequency(-25)
- await fu.start_inverter()
- await asyncio.sleep(0.15)
- await fu.stop_inverter()
queue.task_done()
ws.send(JSON.stringify({name: 'getpin', pin: 'Rücklauf'}))
ws.send(JSON.stringify({name: 'getpin', pin: 'Öllampe'}))
ws.send(JSON.stringify({name: 'getpin', pin: 'Zentralschmierung'}))
+ ws.send(JSON.stringify({name: 'getpin', pin: 'Zentralschmierung Rückmeldung'}))
ws.send(JSON.stringify({name: 'getpin', pin: 'Ölpumpe'}))
+ ws.send(JSON.stringify({name: 'getpin', pin: 'Ölpumpe Rückmeldung'}))
ws.send(JSON.stringify({name: 'getpin', pin: 'Schwungrad'}))
ws.send(JSON.stringify({name: 'getpin', pin: 'Takt'}))
ws.send(JSON.stringify({name: 'getpin', pin: 'Öldruck'}))
ws.send(JSON.stringify({name: 'getpin', pin: 'Bruchplatte'}))
ws.send(JSON.stringify({name: 'getpin', pin: 'Bruchplatte Einzug'}))
+ ws.send(JSON.stringify({name: 'getpin', pin: 'Motorschütz'}))
+ ws.send(JSON.stringify({name: 'getpin', pin: 'Motorschütz Rückmeldung'}))
})
</script>
<h1>ControlPi</h1>
<section>
<h2>Schütze</h2>
<div id="Zentralschmierung">Zentralschmierung</div>
+ <div id="Zentralschmierung Rückmeldung">Zentralschmierung Rückmeldung</div>
<div id="Ölpumpe">Ölpumpe</div>
+ <div id="Ölpumpe Rückmeldung">Ölpumpe Rückmeldung</div>
+ <div id="Motorschütz">Motorschütz</div>
+ <div id="Motorschütz Rückmeldung">Motorschütz Rückmeldung</div>
</section>
<section>
<h2>Sensoren</h2>
<div id="Öldruck">Öldruck</div>
<div id="Bruchplatte">Bruchplatte</div>
<div id="Bruchplatte Einzug">Bruchplatte Einzug</div>
+ <div id="Okay">Okay</div>
</section>
</body>
</html>